from datetime import datetime
from typing import Optional
from pydantic import BaseModel


class CategoryCreate(BaseModel):
    name: str
    code: Optional[str] = None  # auto-generated if empty


class CategoryUpdate(BaseModel):
    name: Optional[str] = None
    code: Optional[str] = None


class CategoryOut(BaseModel):
    id: int
    name: str
    code: str
    created_at: datetime
    model_config = {"from_attributes": True}
