from pydantic_settings import BaseSettings
from typing import Literal, List
import os

class Settings(BaseSettings):
    database_url: str
    environment: Literal["dev", "stage", "prod"]
    hashids_salt: str
    encoder_alphabet: str
    allow_origins: str

    class Config:
        env_file = os.path.join(os.path.dirname(__file__), ".env")
        env_file_encoding = "utf-8"

    def get_allow_origins(self) -> List[str]:
        return [origin.strip() for origin in self.allow_origins.split(",")]

# Singleton instance of settings
settings = Settings()
