from dataclasses import dataclass
from typing import Final
import os


@dataclass(frozen=True)
class Constants:

    SP_CLIENT_VERSION: Final[str] = '1.0.0'

    HOME: Final[str] = os.path.expanduser('~')

    CONFIG_HOME: Final[str] = os.environ.get('XDG_CONFIG_HOME') or os.path.join(HOME, '.config')
    DATA_HOME: Final[str] = os.environ.get('XDG_DATA_HOME') or os.path.join(HOME, '.local/share')
    STATE_HOME: Final[str] = os.environ.get('XDG_STATE_HOME') or os.path.join(HOME, '.local/state')

    SP_CONFIG_HOME: Final[str] = CONFIG_HOME + '/simplified-privacy'
    SP_DATA_HOME: Final[str] = DATA_HOME + '/simplified-privacy'
    SP_STATE_HOME: Final[str] = STATE_HOME + '/simplified-privacy'

    SP_PROFILE_CONFIG_HOME: Final[str] = SP_CONFIG_HOME + '/profiles'
    SP_PROFILE_DATA_HOME: Final[str] = SP_DATA_HOME + '/profiles'

    SP_APPLICATION_DATA_HOME: Final[str] = SP_DATA_HOME + '/applications'

    SP_SESSION_STATE_HOME: Final[str] = SP_STATE_HOME + '/sessions'

    SP_STORAGE_DATABASE_PATH: Final[str] = SP_DATA_HOME + '/storage.db'

    SP_API_BASE_URL: Final[str] = 'https://api.simplifiedprivacy.is/api/v1'