from pydantic import BaseModel, Field
from typing import Optional, Dict, Any
from datetime import datetime



class ProjectBase(BaseModel):
    name: Optional[str] = None
    slug: Optional[str] = None
    data: Optional[str] = None
    store_id: Optional[int] = None
    branch_id: Optional[int] = None
    user_id: Optional[int] = None
    thumbnail: Optional[str] = None 




class ProjectCreate(ProjectBase):
    name: str
    thumbnail: str  # required for thumbnail processing
    slug: Optional[str] = None 



class ProjectUpdate(ProjectBase):
    pass



class ProjectOut(BaseModel):
    id: int
    name: str
    slug: str
    data: str
    user_id: int
    store_id: int
    branch_id: int
    thumbnail: Optional[str] = None  

    class Config:
        from_attributes = True
        populate_by_name = True



class Base64ImageUpload(BaseModel):
    base64_data: str