"""Application configuration using Pydantic Settings."""

from pydantic_settings import BaseSettings


class Settings(BaseSettings):
    """Application settings loaded from environment variables."""

    # Database
    db_url: str = "postgresql://seguser:segpass123@localhost:5432/segserver"

    # Redis
    redis_url: str = "redis://localhost:6379/0"

    # MinIO
    minio_endpoint: str = "192.168.3.11:9000"
    minio_access_key: str = "minioadmin"
    minio_secret_key: str = "minioadmin"
    minio_secure: bool = False

    # SAM
    sam_default_model: str = "sam2.1_hiera_tiny"
    sam_model_path: str = "/home/wkmgc/Desktop/Seg_Server/models/sam2.1_hiera_tiny.pt"
    sam_model_config: str = "configs/sam2.1/sam2.1_hiera_t.yaml"
    sam3_model_version: str = "sam3"
    sam3_checkpoint_path: str = "/home/wkmgc/Desktop/Seg_Server/sam3权重/sam3.pt"
    sam3_external_enabled: bool = True
    sam3_external_python: str = "/home/wkmgc/miniconda3/envs/sam3/bin/python"
    sam3_timeout_seconds: int = 300
    sam3_status_cache_seconds: int = 30
    sam3_confidence_threshold: float = 0.5

    # App
    app_env: str = "development"
    cors_origins: list[str] = ["http://localhost:3000", "http://192.168.3.11:3000"]

    class Config:
        env_file = ".env"
        env_file_encoding = "utf-8"
        extra = "ignore"


settings = Settings()
