119 lines
3.8 KiB
Python
119 lines
3.8 KiB
Python
from __future__ import annotations
|
|
from typing import List
|
|
|
|
from pydantic import BaseModel, ConfigDict, EmailStr, Field
|
|
|
|
|
|
class UsuarioCreate(BaseModel):
|
|
identificador: str = Field(min_length=1, max_length=255)
|
|
senha: str = Field(min_length=1, max_length=400)
|
|
ativo: bool = True
|
|
superadmin: bool = False
|
|
auth_id_appwrite: str | None = Field(
|
|
default=None,
|
|
alias="auth-id-appwrite",
|
|
serialization_alias="auth-id-appwrite",
|
|
min_length=1,
|
|
max_length=255,
|
|
)
|
|
nome: str | None = Field(default=None, min_length=1, max_length=255)
|
|
email: EmailStr | None = Field(default=None)
|
|
telefone: str | None = Field(default=None, min_length=10, max_length=11)
|
|
nivel: str | None = Field(default=None, min_length=1, max_length=100)
|
|
registro_completo: bool = Field(
|
|
default=False,
|
|
alias="registro-completo",
|
|
serialization_alias="registro-completo",
|
|
)
|
|
enderecos: List[str] = Field(default_factory=list)
|
|
empresas_dados: List[str] = Field(
|
|
default_factory=list,
|
|
alias="empresasDados",
|
|
serialization_alias="empresasDados",
|
|
)
|
|
nome_social: str | None = Field(
|
|
default=None,
|
|
alias="nome-social",
|
|
serialization_alias="nome-social",
|
|
min_length=1,
|
|
max_length=255,
|
|
)
|
|
cpf: str | None = Field(default=None, pattern=r"^\d{11}$")
|
|
|
|
model_config = ConfigDict(populate_by_name=True)
|
|
|
|
|
|
class UsuarioUpdate(BaseModel):
|
|
identificador: str | None = Field(default=None, min_length=1, max_length=255)
|
|
senha: str | None = Field(default=None, min_length=1, max_length=400)
|
|
ativo: bool | None = None
|
|
superadmin: bool | None = None
|
|
auth_id_appwrite: str | None = Field(
|
|
default=None,
|
|
alias="auth-id-appwrite",
|
|
serialization_alias="auth-id-appwrite",
|
|
min_length=1,
|
|
max_length=255,
|
|
)
|
|
nome: str | None = Field(default=None, min_length=1, max_length=255)
|
|
email: EmailStr | None = Field(default=None)
|
|
telefone: str | None = Field(default=None, min_length=10, max_length=11)
|
|
nivel: str | None = Field(default=None, min_length=1, max_length=100)
|
|
registro_completo: bool | None = Field(
|
|
default=None,
|
|
alias="registro-completo",
|
|
serialization_alias="registro-completo",
|
|
)
|
|
enderecos: List[str] | None = Field(default=None)
|
|
empresas_dados: List[str] | None = Field(
|
|
default=None,
|
|
alias="empresasDados",
|
|
serialization_alias="empresasDados",
|
|
)
|
|
nome_social: str | None = Field(
|
|
default=None,
|
|
alias="nome-social",
|
|
serialization_alias="nome-social",
|
|
min_length=1,
|
|
max_length=255,
|
|
)
|
|
cpf: str | None = Field(default=None, pattern=r"^\d{11}$")
|
|
|
|
model_config = ConfigDict(populate_by_name=True)
|
|
|
|
|
|
class UsuarioOut(BaseModel):
|
|
id: str
|
|
identificador: str
|
|
ativo: bool
|
|
superadmin: bool
|
|
auth_id_appwrite: str | None = Field(
|
|
default=None,
|
|
alias="auth-id-appwrite",
|
|
serialization_alias="auth-id-appwrite",
|
|
)
|
|
nome: str | None = None
|
|
email: EmailStr | None = None
|
|
telefone: str | None = None
|
|
nivel: str | None = None
|
|
registro_completo: bool = Field(
|
|
default=False,
|
|
alias="registro-completo",
|
|
serialization_alias="registro-completo",
|
|
)
|
|
enderecos: List[str] = Field(default_factory=list)
|
|
empresas_dados: List[str] = Field(
|
|
default_factory=list,
|
|
alias="empresasDados",
|
|
serialization_alias="empresasDados",
|
|
)
|
|
nome_social: str | None = Field(
|
|
default=None,
|
|
alias="nome-social",
|
|
serialization_alias="nome-social",
|
|
)
|
|
cpf: str | None = None
|
|
createdAt: str
|
|
updatedAt: str
|
|
|
|
model_config = ConfigDict(from_attributes=True, populate_by_name=True)
|