from typing import Optional
from sqlmodel import SQLModel, Field
from datetime import datetime

class ProjectMaster(SQLModel, table=True):
    """
    Project master record. One master groups multiple generated images
    created from PSD templates for a single overlay.
    """
    __tablename__ = "project_masters"

    id: Optional[int] = Field(default=None, primary_key=True)
    project_name: str = Field(index=True, nullable=False)
    client_name: str = Field(index=True, nullable=False)
    overlay_image_path: Optional[str] = Field(default=None, nullable=True)
    logo_image_path: Optional[str] = Field(default=None, nullable=True)

    is_deleted: bool = Field(default=False)

    created_at: datetime = Field(default_factory=datetime.utcnow)
    updated_at: datetime = Field(
        default_factory=datetime.utcnow,
        sa_column_kwargs={"onupdate": datetime.utcnow},
    )
