# AUTOGENERATED! DO NOT EDIT! File to edit: nbs/00_core.constants.ipynb (unless otherwise specified).

__all__ = ['BASE_URL', 'RELEASES_URL', 'MASTERS_URL', 'ARTIST_URL', 'LABEL_URL', 'USERS_URL', 'LISTINGS_URL',
           'CurrAbbr', 'SortOptionsMaster', 'SortOptionsArtist', 'SortOptionsLabel', 'SortOptionsInventory',
           'SortOrder', 'StatusInventory', 'StatusNewListing', 'ReleaseCondition', 'SleeveCondition']

# Cell
from enum import Enum

# Cell


BASE_URL = "https://api.discogs.com"
RELEASES_URL = f"{BASE_URL}/releases"
MASTERS_URL = f"{BASE_URL}/masters"
ARTIST_URL = f"{BASE_URL}/artists"
LABEL_URL = f"{BASE_URL}/labels"
USERS_URL = f"{BASE_URL}/users"
LISTINGS_URL = f"{BASE_URL}/marketplace/listings"

# Cell


class CurrAbbr(Enum):
    """
    Valid currencies for marketplace data
    """

    USD = "USD"
    GBP = "GBP"
    EUR = "EUR"
    CAD = "CAD"
    AUD = "AUD"
    JPY = "JPY"
    CHF = "CHF"
    MXN = "MXN"
    BRL = "BRL"
    NZD = "NZD"
    SEK = "SEK"
    ZAR = "ZAR"


# Cell


class SortOptionsMaster(Enum):
    """
    Valid sort options for master releases.
    """

    released = "released"
    title = "title"
    format = "format"
    label = "label"
    catno = "catno"
    country = "country"


# Cell


class SortOptionsArtist(Enum):
    """
    Valid sort options for artist releases.
    """

    year = "year"
    title = "title"
    format = "format"


# Cell


class SortOptionsLabel(Enum):
    """
    Valid sort options for label releases.
    """

    year = "year"
    title = "title"
    format = "format"

# Cell


class SortOptionsInventory(Enum):
    """
    Valid sort options for inventory.
    """

    listed = "listed"
    price = "price"
    item = "item"
    artist = "artist"
    label = "label"
    catno = "catno"
    audio = "audio"
    status = "status" # when authenticated as the inventory owner
    location = "location" # when authenticated as the inventory owner

# Cell


class SortOrder(Enum):
    """
    Valid sort order options.
    """

    asc = "asc"
    desc = "desc"

# Cell


class StatusInventory(Enum):
    """
    Valid status options for inventory items.
    """

    for_sale = "For Sale"
    sold = "Sold"
    draft = "Draft"
    expired = "Expired"

class StatusNewListing(Enum):
    """
    Valid status options for inventory listing.
    """

    for_sale = "For Sale"
    draft = "Draft"

# Cell


class ReleaseCondition(Enum):
    """
    Valid release conditions.
    """

    mint = "Mint (M)"
    near_mint = "Near Mint (NM or M-)"
    very_good_plus = "Very Good Plus (VG+)"
    very_good = "Very Good (VG)"
    good_plus = "Good Plus (G+)"
    good = "Good (G)"
    fair = "Fair (F)"
    poor = "Poor (P)"


# Cell


class SleeveCondition(Enum):
    """
    Valid listing conditions.
    """

    mint = "Mint (M)"
    near_mint = "Near Mint (NM or M-)"
    very_good_plus = "Very Good Plus (VG+)"
    very_good = "Very Good (VG)"
    good_plus = "Good Plus (G+)"
    good = "Good (G)"
    fair = "Fair (F)"
    poor = "Poor (P)"
    generic = "Generic"
    not_graded = "Not Graded"
    no_cover = "No Cover"
