from pydantic import BaseModel, Field


class MediaRoleIn(BaseModel):
    code: str = Field(..., max_length=80)
    label: str = Field(..., max_length=160)
    description: str | None = Field(None, max_length=500)
    sort_order: int = 0
    is_active: bool = True


class MediaRoleOut(MediaRoleIn):
    id: int
    tenant_id: int

    model_config = {"from_attributes": True}


class ProductMediaRoleItemIn(BaseModel):
    role_id: int
    image_url: str = Field(..., max_length=500)
    alt_text: str | None = Field(None, max_length=200)
    sort_order: int = 0
    is_active: bool = True


class ProductMediaRoleItemOut(ProductMediaRoleItemIn):
    id: int
    tenant_id: int
    product_id: int
    role_code: str | None = None
    role_label: str | None = None

    model_config = {"from_attributes": True}


class StoreProductMediaRoleItemOut(BaseModel):
    id: int
    image_url: str
    alt_text: str | None = None
    sort_order: int = 0
