This repository has been archived on 2025-09-17. You can view files and clone it, but cannot push or open issues or pull requests.
api_firebird/api/v1/schemas/caixa/t_ato_schema.py
2025-06-28 20:09:55 -03:00

73 lines
2.7 KiB
Python

# schemas/t_ato_schema.py
from typing import Optional, List
from pydantic import BaseModel, EmailStr
from datetime import datetime
# Schema base usado para representar um usuário retornado pela API
class TAtoSchemaBase(BaseModel):
user_id: Optional[int] = None # ID do usuário (opcional)
nome_completo: Optional[str] = None # Nome completo do usuário
email: Optional[EmailStr] = None # E-mail validado do usuário
class Config:
from_attributes = True # Permite construir a partir de dicts ou ORMs (mesmo sem ORM aqui)
# Schema usado para criação de um novo usuário
class TAtoSchemaCreate(BaseModel):
nome_completo: str # Nome completo obrigatório
email: EmailStr # E-mail obrigatório e validado
senha_api: str # Senha enviada pelo cliente (será criptografada no backend)
# Schema usado para atualização de dados do usuário
# Todos os campos são opcionais para permitir atualizações parciais
class TAtoSchemaUpdate(BaseModel):
nome_completo: Optional[str] = None # Atualização do nome, se fornecido
email: Optional[EmailStr] = None # Atualização do e-mail, se fornecido
senha_api: Optional[str] = None # Atualização da senha, se fornecida
class Config:
from_attributes = True
# Schema para listagem de registros com paginação
class TAtoSchemaList(BaseModel):
usuario_id: float # USUARIO_ID NUMERIC(10,2)
trocarsenha: Optional[str]
login: Optional[str]
situacao: Optional[str]
nome_completo: Optional[str]
funcao: Optional[str]
assina: Optional[str]
sigla: Optional[str]
usuario_tab: Optional[float] # NUMERIC(10,2)
ultimo_login: Optional[datetime]
ultimo_login_regs: Optional[datetime]
data_expiracao: Optional[datetime]
andamento_padrao: Optional[float] # NUMERIC(10,2)
lembrete_pergunta: Optional[str]
lembrete_resposta: Optional[str]
andamento_padrao2: Optional[float] # NUMERIC(10,2)
receber_mensagem_arrolamento: Optional[str]
email: Optional[EmailStr] # ou Optional[str] se preferir mais flexível
assina_certidao: Optional[str]
receber_email_penhora: Optional[str]
foto: Optional[bytes] # BLOB SUB_TYPE BINARY
nao_receber_chat_todos: Optional[str]
pode_alterar_caixa: Optional[str]
receber_chat_certidao_online: Optional[str]
receber_chat_cancelamento: Optional[str]
cpf: Optional[str]
somente_leitura: Optional[str]
receber_chat_envio_onr: Optional[str]
tipo_usuario: Optional[str]
data_cadastro: Optional[datetime]
class TAtoPaginationSchema(BaseModel):
total: int
skip: int
limit: int
data: List[TAtoSchemaList]