from pydantic import BaseModel, Field
from typing import Optional, Dict
from datetime import datetime
from uuid import UUID


class SiteSettingBase(BaseModel):
    key: str = Field(..., min_length=1, max_length=100)
    value: Optional[str] = None


class SiteSettingCreate(SiteSettingBase):
    pass


class SiteSettingUpdate(BaseModel):
    value: Optional[str] = None


class SiteSettingResponse(BaseModel):
    id: UUID
    key: str
    value: Optional[str]
    created_at: datetime
    updated_at: datetime

    class Config:
        from_attributes = True


class SiteSettingsUpdateBulk(BaseModel):
    site_name: Optional[str] = None
    logo_url: Optional[str] = None
    favicon_url: Optional[str] = None
    header_text: Optional[str] = None
    logo_style: Optional[str] = None


class SiteSettingsResponse(BaseModel):
    site_name: str
    logo_url: str
    favicon_url: str
    header_text: str
    logo_style: Optional[str] = None
