feat(TAto): Implementação inicial da listagem dos dados

This commit is contained in:
Keven 2025-12-17 09:38:14 -03:00
parent 9b784f8d1a
commit 2223db9d75
8 changed files with 305 additions and 1 deletions

View file

@ -48,6 +48,7 @@ from packages.v1.administrativo.endpoints import t_pessoa_endpoint
from packages.v1.administrativo.endpoints import t_pessoa_representante_endpoint from packages.v1.administrativo.endpoints import t_pessoa_representante_endpoint
from packages.v1.administrativo.endpoints import g_calculo_endpoint from packages.v1.administrativo.endpoints import g_calculo_endpoint
from packages.v1.servicos.balcao.endpoints import ( from packages.v1.servicos.balcao.endpoints import (
t_ato_endpoint,
t_pessoa_cartao_endpoint, t_pessoa_cartao_endpoint,
t_servico_itempedido_endpoint, t_servico_itempedido_endpoint,
t_servico_pedido_endpoint, t_servico_pedido_endpoint,
@ -369,6 +370,13 @@ api_router.include_router(
tags=["Pessoa Cartao"], tags=["Pessoa Cartao"],
) )
# Inclui as rotas de g_emolumento periodo
api_router.include_router(
t_ato_endpoint.router,
prefix="/servicos/atos/t_ato",
tags=["Atos"],
)
# Inclui as rotas de g_emolumento periodo # Inclui as rotas de g_emolumento periodo
api_router.include_router( api_router.include_router(
t_biometria_pessoa_endpoint.router, t_biometria_pessoa_endpoint.router,

View file

@ -0,0 +1,27 @@
from packages.v1.servicos.balcao.repositories.t_ato.t_ato_index_repository import (
TAtoIndexRepository,
)
from packages.v1.servicos.balcao.schemas.t_ato_schema import TAtoIndexSchema
class TAtoIndexAction:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de listagem de todos os registros na tabela g_tb_regimebens.
"""
def execute(self, t_ato_index_schema: TAtoIndexSchema):
"""
Executa a operação de listagem no banco de dados.
Returns:
A lista de todos os registros.
"""
# Instanciamento do repositório
t_ato_index_repository = TAtoIndexRepository()
# Execução do repositório
response = t_ato_index_repository.execute(t_ato_index_schema)
# Retorno da informação
return response

View file

@ -0,0 +1,34 @@
from actions.dynamic_import.dynamic_import import DynamicImport
from packages.v1.servicos.balcao.schemas.t_ato_schema import TAtoIndexSchema
from packages.v1.servicos.balcao.services.t_ato.t_ato_index_service import (
TAtoIndexService,
)
class TAtoController:
"""
Controller responsável por orquestrar as operações CRUD da tabela T_PESSOA_CARTAO,
utilizando carregamento dinâmico de serviços via DynamicImport.
"""
def __init__(self):
# ----------------------------------------------------
# Inicialização do DynamicImport
# ----------------------------------------------------
self.dynamic_import = DynamicImport()
self.dynamic_import.set_package("servicos.balcao")
self.dynamic_import.set_table("t_ato")
# ----------------------------------------------------
# Lista todos os registros de T_PESSOA_CARTAO
# ----------------------------------------------------
def index(self, t_ato_index_schema: TAtoIndexSchema):
# Instância da classe service
self.index_service = TAtoIndexService()
# Execução da listagem
return {
"message": "Registros de T_ATO localizados com sucesso.",
"data": self.index_service.execute(t_ato_index_schema),
}

View file

@ -0,0 +1,34 @@
# Importação de bibliotecas
from fastapi import APIRouter, Depends, status
from actions.data.get_url_params import get_url_params
from actions.jwt.get_current_user import get_current_user
from packages.v1.servicos.balcao.controllers.t_ato_controller import TAtoController
from packages.v1.servicos.balcao.schemas.t_ato_schema import TAtoIndexSchema
# ----------------------------------------------------
# Inicializa o roteador para as rotas da tabela T_ATO
# ----------------------------------------------------
router = APIRouter()
# Instanciamento do controller
t_ato_controller = TAtoController()
# ----------------------------------------------------
# Lista todos os registros de T_ATO
# ----------------------------------------------------
@router.get(
"/",
status_code=status.HTTP_200_OK,
summary="Lista todos os registros de T_ATO cadastrados",
response_description="Lista todos os registros de T_ATO cadastrados",
)
async def index(
current_user: dict = Depends(get_current_user), url_params=Depends(get_url_params)
):
# Busca todos os usuários cadastrados
response = t_ato_controller.index(TAtoIndexSchema(**url_params))
# Retorna os dados localizados
return response

View file

@ -0,0 +1,33 @@
from abstracts.repository import BaseRepository
from packages.v1.servicos.balcao.schemas.t_ato_schema import TAtoIndexSchema
class TAtoIndexRepository(BaseRepository):
"""
Repositório para a operação de listagem de todos os registros
na tabela T_ATO.
"""
def execute(self, t_ato_index_schema: TAtoIndexSchema):
"""
Executa a consulta SQL para buscar todos os registros.
Returns:
Uma lista de dicionários contendo os dados dos registros.
"""
# Montagem do SQL
sql = """ SELECT
ta.ato_id,
ta.PROTOCOLO ,
ta.DATA_LAVRATURA,
ta.FOLHA_INICIAL ,
ta.FOLHA_FINAL
FROM
t_ato ta
ORDER BY TA.ATO_ID ASC """
# Execução do sql
response = self.fetch_all(sql)
# Retorna os dados localizados
return response

View file

@ -0,0 +1,124 @@
from pydantic import BaseModel
from typing import Optional
from decimal import Decimal
from datetime import datetime
from pydantic.config import ConfigDict
class TAtoIndexSchema(BaseModel):
class Config:
extra = "allow"
class TAtoSchema(BaseModel):
ato_id: Optional[Decimal] = None
ato_tipo_id: Optional[Decimal] = None
escrevente_ato_id: Optional[Decimal] = None
escrevente_assina_id: Optional[Decimal] = None
livro_andamento_id: Optional[Decimal] = None
data_abertura: Optional[datetime] = None
data_lavratura: Optional[datetime] = None
data_protocolo: Optional[datetime] = None
data_prevista_entrega: Optional[datetime] = None
usuario_id: Optional[Decimal] = None
usuario_id_lavratura: Optional[Decimal] = None
protocolo: Optional[Decimal] = None
alienacao_data: Optional[datetime] = None
alienacao_datalavratura: Optional[str] = None
alienacao_forma: Optional[Decimal] = None
qualificacao_imovel_id: Optional[Decimal] = None
folha_inicial: Optional[Decimal] = None
folha_final: Optional[Decimal] = None
folha_total: Optional[Decimal] = None
folha_letra: Optional[str] = None
lado_folha_fim: Optional[str] = None
grs_numero: Optional[str] = None
texto: Optional[bytes] = None
texto_finalizacao: Optional[bytes] = None
texto_imovel_geral: Optional[bytes] = None
texto_assinatura: Optional[bytes] = None
natureza_id: Optional[Decimal] = None
valor_pagamento: Optional[Decimal] = None
situacao_ato: Optional[str] = None
cancelado_data: Optional[datetime] = None
cancelado_motivo: Optional[str] = None
cancelado_observacao: Optional[str] = None
cancelado_usuario_id: Optional[Decimal] = None
data_cancelamento: Optional[datetime] = None
ato_antigo: Optional[str] = None
ato_antigo_ocorrencia: Optional[str] = None
ato_antigo_protocolo: Optional[Decimal] = None
ato_anterior_origem: Optional[str] = None
ato_anterior_livro: Optional[Decimal] = None
ato_anterior_inicial: Optional[str] = None
ato_anterior_ffinal: Optional[str] = None
ato_anterior_tb_cartorio_id: Optional[Decimal] = None
ato_anterior_outorgante: Optional[str] = None
ato_anterior_observacao: Optional[str] = None
ato_anterior_ato_id: Optional[Decimal] = None
ato_anterior_data: Optional[datetime] = None
ato_anterior_anotacao_adicional: Optional[bytes] = None
ato_anterior_ato_tipo_id: Optional[Decimal] = None
ato_anterior_valor_documento: Optional[Decimal] = None
cadastrar_imovel: Optional[str] = None
qtd_imovel: Optional[Decimal] = None
minuta_protegida: Optional[str] = None
havido_marcacao_id: Optional[Decimal] = None
observacao: Optional[str] = None
selo_livro_id: Optional[Decimal] = None
usar_tabela_auxiliar: Optional[str] = None
fonte_tamanho: Optional[Decimal] = None
selo_recuo: Optional[Decimal] = None
filho_maior_qtd: Optional[Decimal] = None
filho_maior_descricao: Optional[bytes] = None
filho_menor_qtd: Optional[Decimal] = None
filho_menor_descricao: Optional[bytes] = None
casamento_data: Optional[datetime] = None
casamento_tb_regime_id: Optional[Decimal] = None
resp_filhos_maiores: Optional[str] = None
resp_filhos_menores: Optional[str] = None
censec_naturezalitigio_id: Optional[Decimal] = None
censec_acordo: Optional[str] = None
nlote: Optional[Decimal] = None
especie_pagamento: Optional[str] = None
fora_cartorio: Optional[str] = None
nfse_id: Optional[Decimal] = None
acao: Optional[Decimal] = None
frente_verso: Optional[str] = None
chave_importacao: Optional[Decimal] = None
lavratura_online: Optional[str] = None
ativo: Optional[str] = None
convalidacao: Optional[str] = None
ato_oneroso: Optional[str] = None
eh_restrito: Optional[str] = None
mne: Optional[str] = None
model_config = ConfigDict(from_attributes=True)

View file

@ -52,7 +52,6 @@ class TServicoPedidoSchema(BaseModel):
class TServicoPedidoIdSchema(BaseModel): class TServicoPedidoIdSchema(BaseModel):
servico_pedido_id: Decimal servico_pedido_id: Decimal
model_config = ConfigDict(from_attributes=True) model_config = ConfigDict(from_attributes=True)

View file

@ -0,0 +1,45 @@
from fastapi import HTTPException, status
from packages.v1.servicos.balcao.actions.t_ato.t_ato_index_action import TAtoIndexAction
from packages.v1.servicos.balcao.schemas.t_ato_schema import TAtoIndexSchema
class TAtoIndexService:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de listagem de registros na tabela T_PESSOA_CARTAO.
"""
def execute(self, t_ato_index_schema: TAtoIndexSchema):
"""
Executa a operação de busca de todos os registros no banco de dados.
Args:
t_ato_index_schema (TAtoIndexSchema):
Esquema que pode conter filtros ou parâmetros de busca.
Returns:
A lista de registros encontrados.
"""
# ----------------------------------------------------
# Instanciamento da ação
# ----------------------------------------------------
t_ato_index_action = TAtoIndexAction()
# ----------------------------------------------------
# Execução da ação
# ----------------------------------------------------
data = t_ato_index_action.execute(t_ato_index_schema)
# ----------------------------------------------------
# Verificação de retorno
# ----------------------------------------------------
if not data:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="Não foi possível localizar registros de T_PESSOA_CARTAO.",
)
# ----------------------------------------------------
# Retorno da informação
# ----------------------------------------------------
return data