from datetime import datetime from pydantic import BaseModel, ConfigDict, EmailStr, Field class AccountCreate(BaseModel): name: str = Field(..., min_length=1, max_length=255) trade_name: str | None = Field(None, max_length=255) rfc: str | None = Field(None, max_length=13) account_type: str | None = Field(None, max_length=40) industry: str | None = Field(None, max_length=120) email: EmailStr | None = None phone: str | None = Field(None, max_length=40) website: str | None = Field(None, max_length=255) address: str | None = None city: str | None = Field(None, max_length=120) state: str | None = Field(None, max_length=120) country: str | None = Field(None, max_length=2) patente_aduanal: str | None = Field(None, max_length=20) status: str = Field("active", max_length=20) owner_user_id: str | None = Field(None, max_length=64) notes: str | None = None class AccountUpdate(BaseModel): name: str | None = Field(None, min_length=1, max_length=255) trade_name: str | None = Field(None, max_length=255) rfc: str | None = Field(None, max_length=13) account_type: str | None = Field(None, max_length=40) industry: str | None = Field(None, max_length=120) email: EmailStr | None = None phone: str | None = Field(None, max_length=40) website: str | None = Field(None, max_length=255) address: str | None = None city: str | None = Field(None, max_length=120) state: str | None = Field(None, max_length=120) country: str | None = Field(None, max_length=2) patente_aduanal: str | None = Field(None, max_length=20) status: str | None = Field(None, max_length=20) owner_user_id: str | None = Field(None, max_length=64) notes: str | None = None class AccountResponse(BaseModel): model_config = ConfigDict(from_attributes=True) id: int name: str trade_name: str | None rfc: str | None account_type: str | None industry: str | None email: str | None phone: str | None website: str | None address: str | None city: str | None state: str | None country: str | None patente_aduanal: str | None status: str owner_user_id: str | None notes: str | None tenant_id: int company_id: int created_at: datetime updated_at: datetime