# Copyright (C) 2026 Giovanni Fulco
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


from enum import Enum


class ColumnName(Enum):
    CREATED_TIMESTAMP = "created_timestamp"
    UPDATED_TIMESTAMP = "updated_timestamp"
    ARTIST_ID = "artist_id"
    ARTIST_NAME = "artist_name"
    ARTIST_MB_ID = "artist_musicbrainz_id"
    ARTIST_ALBUM_COUNT = "artist_album_count"
    ARTIST_COVER_ART = "artist_cover_art"
    ID = "id"
    ALBUM_ID = "album_id"
    QUALITY_BADGE = "quality_badge"
    ALBUM_MB_ID = "album_musicbrainz_id"
    ARTIST_MEDIA_TYPE = "artist_media_type"
    ALBUM_ARTIST_ID = "album_artist_id"
    ALBUM_PATH = "album_path"
    ARTIST_SORT_NAME = "artist_sort_name"
    ARTIST_ROLE = "artist_role"
    ALBUM_ARTIST = "album_artist"
    ALBUM_COVER_ART = "album_cover_art"
    ALBUM_NAME = "album_name"
    ALBUM_SONG_COUNT = "album_song_count"
    ALBUM_DURATION = "album_duration"
    ALBUM_CREATED = "album_created"
    ALBUM_YEAR = "album_year"
    ALBUM_GENRE = "album_genre"
    ALBUM_USER_RATING = "album_user_rating"
    ALBUM_DISPLAY_ARTIST = "album_display_artist"
    EXPLICIT_STATUS = "explicit_status"
    ALBUM_IS_COMPILATION = "album_is_compilation"
    ALBUM_PLAY_COUNT = "album_play_count"
    ALBUM_PLAYED = "album_played"
    ALBUM_SORT_NAME = "album_sort_name"
    ALBUM_VERSION = "album_version"
    ALBUM_ORIGINAL_RELEASE_DATE_YEAR = "album_orig_rel_date_year"
    ALBUM_ORIGINAL_RELEASE_DATE_MONTH = "album_orig_rel_date_month"
    ALBUM_ORIGINAL_RELEASE_DATE_DAY = "album_orig_rel_date_day"
    ALBUM_RELEASE_DATE_YEAR = "album_rel_date_year"
    ALBUM_RELEASE_DATE_MONTH = "album_rel_date_month"
    ALBUM_RELEASE_DATE_DAY = "album_rel_date_day"
    DISC_NUM = "disc_num"
    DISC_TITLE = "disc_title"
    ALBUM_RECORD_LABEL = "album_record_label"
    ALBUM_TRACK_QUALITY_SUMMARY = "album_track_quality_summary"
    ALBUM_MOOD = "album_mood"
    ALBUM_RELEASE_TYPE = "album_release_type"
    SONG_ID = "song_id"
    SONG_ARTIST = "song_artist"
    SONG_TITLE = "song_title"
    SONG_ALBUM_ID = "song_album_id"
    SONG_ARTIST_ID = "song_artist_id"
    SONG_COMMENT = "song_comment"
    SONG_BITDEPTH = "song_bitdepth"
    SONG_BITRATE = "song_bitrate"
    SONG_CHANNEL_COUNT = "song_channel_count"
    SONG_SAMPLING_RATE = "song_sampling_rate"
    SONG_SIZE = "song_size"
    SONG_SUFFIX = "song_suffix"
    SONG_DISC_NUMBER = "song_disc_number"
    SONG_TRACK = "song_track"
    SONG_TYPE = "song_type"
    SONG_DURATION = "song_duration"
    SONG_CONTENT_TYPE = "song_content_type"
    SONG_COVER_ART = "song_cover_art"
    SONG_CREATED = "song_created"
    SONG_DISPLAY_ALBUM_ARTIST = "song_display_album_artist"
    SONG_DISPLAY_ARTIST = "song_display_artist"
    SONG_EXPLICIT_STATUS = "song_explicit_status"
    SONG_GENRE = "song_genre"
    SONG_IS_DIR = "song_is_dir"
    SONG_MEDIA_TYPE = "song_media_type"
    SONG_MUSICBRAINZ_ID = "song_musicbrainz_id"
    SONG_PATH = "song_path"
    SONG_PLAY_COUNT = "song_play_count"
    SONG_PLAYED = "song_played"
    SONG_YEAR = "song_year"
    SONG_DISPLAY_COMPOSER = "song_display_composer"
    SONG_SORT_NAME = "song_sort_name"
    SONG_ALBUM_ARTIST_ID = "song_album_artist_id"
    SONG_CONTRIBUTOR_ROLE = "song_contributor_role"
    SONG_CONTRIBUTOR_SUB_ROLE = "song_contributor_sub_role"
    SONG_LOSSLESS_STATUS = "song_lossless_status"
    ALBUM_PROPERTY_ID = "album_property_id"
    ALBUM_PROPERTY_KEY = "album_property_key"
    ALBUM_PROPERTY_VALUE = "album_property_value"
    ALBUM_AVERAGE_BITRATE = "album_average_bitrate"
    ALBUM_LOSSLESS_STATUS = "album_lossless_status"
    ALBUM_ORIGINAL_RELEASE_DATE_STR = "album_orig_rel_date_str"
    ALBUM_RELEASE_DATE_STR = "album_rel_date_str"
    ALBUM_GENRE_LIST = "album_genre_list"
    ALBUM_MOOD_LIST = "album_mood_list"
    ALBUM_RECORD_LABEL_LIST = "album_record_label_list"
    ALBUM_RELEASE_TYPE_LIST = "album_release_type_list"
    ALBUM_DISC_COUNT = "album_disc_count"
    ALBUM_MEDIA_TYPE = "album_media_type"
    SONG_STARRED = "song_starred"
    ALBUM_STARRED = "album_starred"
    ARTIST_STARRED = "artist_starred"
