import pathlib

from starlette.config import Config

ROOT = pathlib.Path(__file__).resolve().parent.parent  # app/
BASE_DIR = ROOT.parent  # ./

config = Config(BASE_DIR / ".env")



API_USERNAME = config("API_USERNAME", str)
API_PASSWORD = config("API_PASSWORD", str)

# Auth configs.
API_SECRET_KEY = config("API_SECRET_KEY", str)
API_ALGORITHM = config("API_ALGORITHM", str)
API_ACCESS_TOKEN_EXPIRE_MINUTES = config(
    "API_ACCESS_TOKEN_EXPIRE_MINUTES", int
)  # infinity

DB_USER = config("DB_USER", str)
DB_PASSWORD = config("DB_PASSWORD", str)
DB_HOST = config("DB_HOST", str)
DB_PORT = config("DB_PORT", str)
DB_NAME = config("DB_NAME", str)
DB_POSTGRES_SCHEMA = config("DB_POSTGRES_SCHEMA", str)
IS_DB_ECHO_LOG = config("IS_DB_ECHO_LOG", bool)
DB_POOL_OVERFLOW = config("DB_POOL_OVERFLOW", int)
DB_POOL_SIZE = config("DB_POOL_SIZE", int)


KEYCLOAK_SERVER=config("KEYCLOAK_SERVER", str)
KEYCLOAK_CLIENT_ID=config("KEYCLOAK_CLIENT_ID", str)
KEYCLOAK_REALM_PUBLIC_KEY=config("KEYCLOAK_REALM_PUBLIC_KEY", str)
KEYCLOAK_LOAD_USER_FROM_DATABASE=config("KEYCLOAK_LOAD_USER_FROM_DATABASE", str)
KEYCLOAK_USER_PROVIDER_CREDENTIAL=config("KEYCLOAK_USER_PROVIDER_CREDENTIAL", str)
KEYCLOAK_TOKEN_PRINCIPAL_ATTRIBUTE=config("KEYCLOAK_TOKEN_PRINCIPAL_ATTRIBUTE", str)
KEYCLOAK_APPEND_DECODED_TOKEN=config("KEYCLOAK_APPEND_DECODED_TOKEN", str)
KEYCLOAK_ALLOWED_RESOURCES=config("KEYCLOAK_ALLOWED_RESOURCES", str)
KEYCLOAK_REALM=config("KEYCLOAK_REALM", str)
KEYCLOAK_CLIENT_SECRET=config("KEYCLOAK_CLIENT_SECRET", str)


API_CHATGPT_KEY = config("API_CHATGPT_KEY", str)
API_CHATGPT_URL = config("API_CHATGPT_URL", str)

API_CLAUDE_KEY = config("API_CLAUDE_KEY", str)
API_CLAUDE_URL = config("API_CLAUDE_URL", str)

API_CLAUDE_KEY = config("API_CLAUDE_KEY", str)
API_CLAUDE_URL = config("API_CLAUDE_URL", str)


API_SERVICE_LOGING_URL = config("API_SERVICE_LOGING_URL", str)
API_SERVICE_USER = config("API_SERVICE_USER", str)
API_SERVICE_PASSWORD = config("API_SERVICE_PASSWORD", str)
API_SERVICE_BASE_URL = config("API_SERVICE_BASE_URL", str)


GOOGLE_API_KEY = config("GOOGLE_API_KEY", str)


API_USERNAMETEST = config("API_USERNAMETEST", str)
API_PASSWORDTEST = config("API_PASSWORDTEST", str)
API_URLTEST = config("API_URLTEST", str)

REDIS_HOST = config("REDIS_HOST", str)
REDIS_PORT = config("REDIS_PORT", str)

TELEGRAM_KEY = config("TELEGRAM_KEY", str)
TELEGRAM_USER = config("TELEGRAM_USER", str)

TARGET_POST_QA_USERNAME="malvarez@tolber.io"
TARGET_POST_QA_PASSWORD="manuel.Alvarez564"
DEFAULT_TIME_TO_NOTIFY = config("DEFAULT_TIME_TO_NOTIFY", str)


API_FRONT_BASE_URL = config("API_FRONT_BASE_URL", str)


KEYCLOAK_REALM_CLIENTE_AUTH=config("KEYCLOAK_REALM_CLIENTE_AUTH", str)
KEYCLOAK_CLIENT_SECRET_CLIENTE_AUTH=config("KEYCLOAK_CLIENT_SECRET_CLIENTE_AUTH", str)
KEYCLOAK_CLIENT_ID_CLIENTE_AUTH=config("KEYCLOAK_CLIENT_ID_CLIENTE_AUTH", str)
KEYCLOAK_SERVER_CLIENTE_AUTH=config("KEYCLOAK_SERVER_CLIENTE_AUTH", str)
API_URL=config("API_URL", str)