"""
Todo Project 애플리케이션 설정
"""
from pydantic_settings import BaseSettings
from typing import List
import os


class Settings(BaseSettings):
    """애플리케이션 설정 클래스"""
    
    # 기본 설정
    APP_NAME: str = "Todo Project"
    DEBUG: bool = True
    VERSION: str = "0.1.0"
    
    # 데이터베이스 설정
    DATABASE_URL: str = "postgresql+asyncpg://todo_user:todo_password@database:5432/todo_db"
    
    # JWT 설정
    SECRET_KEY: str = "your-secret-key-change-this-in-production"
    ALGORITHM: str = "HS256"
    ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
    REFRESH_TOKEN_EXPIRE_DAYS: int = 7
    
    # CORS 설정
    ALLOWED_HOSTS: List[str] = ["http://localhost:4000", "http://127.0.0.1:4000"]
    ALLOWED_ORIGINS: List[str] = ["http://localhost:4000", "http://127.0.0.1:4000"]
    
    # 서버 설정
    HOST: str = "0.0.0.0"
    PORT: int = 9000
    
    # 관리자 계정 설정 (초기 설정용)
    ADMIN_EMAIL: str = "admin@todo-project.local"
    ADMIN_PASSWORD: str = "admin123"  # 프로덕션에서는 반드시 변경
    
    class Config:
        env_file = ".env"
        case_sensitive = True


# 설정 인스턴스 생성
settings = Settings()
