from typing import Optional
from pydantic import BaseModel, Field, ConfigDict


class ClassifierSchema(BaseModel):
    empresa: str = Field(..., max_length=150)
    sistema: str = Field(..., max_length=150)
    classificacao: Optional[str] = Field(None, max_length=100)
    time_id: Optional[int] = None
    usuario_id: Optional[int] = None

    model_config = ConfigDict(
        from_attributes=True,
        validate_assignment=True,
    )


class ClassifierCreate(BaseModel):
    empresa: str = Field(..., max_length=150)
    sistema: str = Field(..., max_length=150)
    classificacao: Optional[str] = Field(None, max_length=100)
    time_id: Optional[int] = None
    usuario_id: Optional[int] = None


class ClassifierUpdate(BaseModel):
    classificacao: Optional[str] = Field(None, max_length=100)
    time_id: Optional[int] = None
    usuario_id: Optional[int] = None
