import APIClient
import Localization

extension Paths.Playlist.WithPlaylistId.GetParameters.SortBy {
    public var sortByDisplayName: String {
        switch self {
        case .createdAt:
            return L10n.FeaturePlaylistMoreMenu.sortByCreatedAt
        case .title:
            return L10n.FeaturePlaylistMoreMenu.sortByTitle
        case .playCount:
            return L10n.FeaturePlaylistMoreMenu.sortByPlayCount
        case .upvoteCount:
            return L10n.FeaturePlaylistMoreMenu.sortByUpvoteCount
        default:
            return rawValue
        }
    }
}

extension Paths.Playlist.WithPlaylistId.GetParameters.SortOrder {
    public func sortOrderDisplayName(for sortBy: Paths.Playlist.WithPlaylistId.GetParameters.SortBy?) -> String {
        let isDateField = sortBy == Paths.Playlist.WithPlaylistId.GetParameters.SortBy.createdAt

        switch self {
        case .asc:
            return isDateField
                ? L10n.FeaturePlaylistMoreMenu.sortOrderOldestFirst
                : L10n.FeaturePlaylistMoreMenu.sortOrderAscending
        case .desc:
            return isDateField
                ? L10n.FeaturePlaylistMoreMenu.sortOrderNewestFirst
                : L10n.FeaturePlaylistMoreMenu.sortOrderDescending
        default:
            return rawValue
        }
    }
}
