from pydantic import BaseModel, ConfigDict, Field, field_validator


class Account(BaseModel):
    model_config = ConfigDict(from_attributes=True)

    name: str = Field(..., pattern="^[a-z]+$")
    tags: list[str] = Field(default_factory=list, min_length=1)

    @field_validator("name")
    @classmethod
    def lower(cls, value):
        return value.lower()


class Plain:
    class Config:
        orm_mode = True

    @classmethod
    def parse_obj(cls, raw):
        return cls()


def load(raw):
    return Account.model_validate(raw), Plain.parse_obj(raw)
