[MVPTN-6] feat(CRUD): Crud completo das tabelas t_censec e t_censec_naturezalitigio

This commit is contained in:
Kenio 2025-09-19 09:11:25 -03:00
parent 9696c6ff6b
commit a4c6bf6241
44 changed files with 6157 additions and 24 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,26 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.t_censec_schema import TCensecIdSchema
from packages.v1.administrativo.repositories.t_censec.t_censec_delete_repository import DeleteRepository
class DeleteAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de exclusão de um registro na tabela t_censec.
"""
def execute(self, censec_schema: TCensecIdSchema):
"""
Executa a operação de exclusão no banco de dados.
Args:
censec_schema (TCensecIdSchema): O esquema com o ID a ser excluído.
Returns:
O resultado da operação de exclusão.
"""
# Instanciamento do repositório
delete_repository = DeleteRepository()
# Execução do repositório
return delete_repository.execute(censec_schema)

View file

@ -0,0 +1,29 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.t_censec_schema import TCensecDescricaoSchema
from packages.v1.administrativo.repositories.t_censec.t_censec_get_by_descricao_repository import GetByDescricaoRepository
class GetByDescricaoAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de busca de um registro na tabela t_censec por descrição.
"""
def execute(self, censec_schema: TCensecDescricaoSchema):
"""
Executa a operação de busca no banco de dados.
Args:
censec_schema (TCensecDescricaoSchema): O esquema com a descrição a ser buscada.
Returns:
O registro encontrado ou None.
"""
# Instanciamento do repositório
show_repository = GetByDescricaoRepository()
# Execução do repositório
response = show_repository.execute(censec_schema)
# Retorno da informação
return response

View file

@ -0,0 +1,24 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.repositories.t_censec.t_censec_index_repository import IndexRepository
class IndexAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de listagem de todos os registros na tabela t_censec.
"""
def execute(self):
"""
Executa a operação de listagem no banco de dados.
Returns:
A lista de todos os registros.
"""
# Instanciamento do repositório
index_repository = IndexRepository()
# Execução do repositório
response = index_repository.execute()
# Retorno da informação
return response

View file

@ -0,0 +1,28 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.t_censec_schema import TCensecSaveSchema
from packages.v1.administrativo.repositories.t_censec.t_censec_save_repository import SaveRepository
class SaveAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de salvar um novo registro na tabela t_censec.
"""
def execute(self, censec_schema: TCensecSaveSchema):
"""
Executa a operação de salvamento.
Args:
censec_schema (TCensecSaveSchema): O esquema com os dados a serem salvos.
Returns:
O resultado da operação de salvamento.
"""
# Instanciamento do repositório
save_repository = SaveRepository()
# Execução do repositório
response = save_repository.execute(censec_schema)
# Retorno da informação
return response

View file

@ -0,0 +1,28 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.t_censec_schema import TCensecIdSchema
from packages.v1.administrativo.repositories.t_censec.t_censec_show_repository import ShowRepository
class ShowAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a exibição
de um registro na tabela t_censec.
"""
def execute(self, censec_schema: TCensecIdSchema):
"""
Executa a operação de exibição.
Args:
censec_schema (TCensecIdSchema): O esquema com o ID do registro a ser exibido.
Returns:
O resultado da operação de exibição.
"""
# Instânciamento do repositório
show_repository = ShowRepository()
# Execução do repositório
response = show_repository.execute(censec_schema)
# Retorno da informação
return response

View file

@ -0,0 +1,26 @@
from packages.v1.administrativo.schemas.t_censec_schema import TCensecUpdateSchema
from packages.v1.administrativo.repositories.t_censec.t_censec_update_repository import UpdateRepository
class UpdateAction:
"""
Service responsável por encapsular a lógica de negócio para a atualização
de um registro na tabela t_censec.
"""
def execute(self, censec_id: int, censec_schema: TCensecUpdateSchema):
"""
Executa a operação de atualização.
Args:
censec_id (int): O ID do registro a ser atualizado.
censec_schema (TCensecUpdateSchema): O esquema com os dados a serem atualizados.
Returns:
O resultado da operação de atualização.
"""
# Instância o repositório de atualização
update_repository = UpdateRepository()
# Chama o método de execução do repositório para realizar a atualização
return update_repository.execute(censec_id, censec_schema)

View file

@ -0,0 +1,26 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioIdSchema
from packages.v1.administrativo.repositories.t_censec_naturezalitigio.t_censec_naturezalitigio_delete_repository import DeleteRepository
class DeleteAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de exclusão de um registro na tabela t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioIdSchema):
"""
Executa a operação de exclusão no banco de dados.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioIdSchema): O esquema com o ID a ser excluído.
Returns:
O resultado da operação de exclusão.
"""
# Instanciamento do repositório
delete_repository = DeleteRepository()
# Execução do repositório
return delete_repository.execute(censec_naturezalitigio_schema)

View file

@ -0,0 +1,29 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioDescricaoSchema
from packages.v1.administrativo.repositories.t_censec_naturezalitigio.t_censec_naturezalitigio_get_by_descricao_repository import GetByDescricaoRepository
class GetByDescricaoAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de busca de um registro na tabela t_censec_naturezalitigio por descrição.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioDescricaoSchema):
"""
Executa a operação de busca no banco de dados.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioDescricaoSchema): O esquema com a descrição a ser buscada.
Returns:
O registro encontrado ou None.
"""
# Instanciamento do repositório
show_repository = GetByDescricaoRepository()
# Execução do repositório
response = show_repository.execute(censec_naturezalitigio_schema)
# Retorno da informação
return response

View file

@ -0,0 +1,24 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.repositories.t_censec_naturezalitigio.t_censec_naturezalitigio_index_repository import IndexRepository
class IndexAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de listagem de todos os registros na tabela t_censec_naturezalitigio.
"""
def execute(self):
"""
Executa a operação de listagem no banco de dados.
Returns:
A lista de todos os registros.
"""
# Instanciamento do repositório
index_repository = IndexRepository()
# Execução do repositório
response = index_repository.execute()
# Retorno da informação
return response

View file

@ -0,0 +1,28 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioSaveSchema
from packages.v1.administrativo.repositories.t_censec_naturezalitigio.t_censec_naturezalitigio_save_repository import SaveRepository
class SaveAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de salvar um novo registro na tabela t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioSaveSchema):
"""
Executa a operação de salvamento.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioSaveSchema): O esquema com os dados a serem salvos.
Returns:
O resultado da operação de salvamento.
"""
# Instanciamento do repositório
save_repository = SaveRepository()
# Execução do repositório
response = save_repository.execute(censec_naturezalitigio_schema)
# Retorno da informação
return response

View file

@ -0,0 +1,28 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioIdSchema
from packages.v1.administrativo.repositories.t_censec_naturezalitigio.t_censec_naturezalitigio_show_repository import ShowRepository
class ShowAction(BaseAction):
"""
Serviço responsável por encapsular a lógica de negócio para a exibição
de um registro na tabela t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioIdSchema):
"""
Executa a operação de exibição.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioIdSchema): O esquema com o ID do registro a ser exibido.
Returns:
O resultado da operação de exibição.
"""
# Instânciamento do repositório
show_repository = ShowRepository()
# Execução do repositório
response = show_repository.execute(censec_naturezalitigio_schema)
# Retorno da informação
return response

View file

@ -0,0 +1,26 @@
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioUpdateSchema
from packages.v1.administrativo.repositories.t_censec_naturezalitigio.t_censec_naturezalitigio_update_repository import UpdateRepository
class UpdateAction:
"""
Service responsável por encapsular a lógica de negócio para a atualização
de um registro na tabela t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_id: int, censec_naturezalitigio_schema: TCensecNaturezalitigioUpdateSchema):
"""
Executa a operação de atualização.
Args:
censec_naturezalitigio_id (int): O ID do registro a ser atualizado.
censec_naturezalitigio_schema (TCensecNaturezalitigioUpdateSchema): O esquema com os dados a serem atualizados.
Returns:
O resultado da operação de atualização.
"""
# Instância o repositório de atualização
update_repository = UpdateRepository()
# Chama o método de execução do repositório para realizar a atualização
return update_repository.execute(censec_naturezalitigio_id, censec_naturezalitigio_schema)

View file

@ -0,0 +1,113 @@
from actions.dynamic_import.dynamic_import import DynamicImport
from packages.v1.administrativo.schemas.t_censec_schema import (
TCensecSchema,
TCensecSaveSchema,
TCensecUpdateSchema,
TCensecIdSchema,
TCensecDescricaoSchema
)
class TCensecController:
def __init__(self):
# Action responsável por carregar as services de acordo com o estado
self.dynamic_import = DynamicImport()
# Define o pacote que deve ser carregado
self.dynamic_import.set_package("administrativo")
# Define a tabela que o pacote pertence
self.dynamic_import.set_table("t_censec")
pass
# Lista todos os registros de censec
def index(self):
# Importação da classe desejada
indexService = self.dynamic_import.service("t_censec_index_service", "IndexService")
# Instância da classe service
self.indexService = indexService()
# Lista todos os registros de censec
return {
'message': 'Registros de censec localizados com sucesso',
'data': self.indexService.execute()
}
# Busca um registro de censec específico pelo ID
def show(self, censec_schema: TCensecIdSchema):
#Importação da classe desejada
show_service = self.dynamic_import.service('t_censec_show_service', 'ShowService')
# Instância da classe desejada
self.show_service = show_service()
# Busca e retorna o registro de censec desejado
return {
'message': 'Registro de censec localizado com sucesso',
'data': self.show_service.execute(censec_schema)
}
# Busca um registro de censec pela descrição
def get_by_descricao(self, censec_schema: TCensecDescricaoSchema):
#Importação da classe desejada
show_service = self.dynamic_import.service('t_censec_get_descricao_service', 'GetByDescricaoService')
# Instância da classe desejada
self.show_service = show_service()
# Busca e retorna o registro de censec desejado
return {
'message': 'Registro de censec localizado com sucesso',
'data': self.show_service.execute(censec_schema, True)
}
# Cadastra um novo registro de censec
def save(self, censec_schema: TCensecSaveSchema):
#Importação da classe desejada
save_service = self.dynamic_import.service('t_censec_save_service', 'SaveService')
# Instância da classe desejada
self.save_service = save_service()
# Busca e retorna o registro de censec desejado
return {
'message': 'Registro de censec salvo com sucesso',
'data': self.save_service.execute(censec_schema)
}
# Atualiza os dados de um registro de censec
def update(self, censec_id: int, censec_schema: TCensecUpdateSchema):
#Importação da classe desejada
update_service = self.dynamic_import.service('t_censec_update_service', 'UpdateService')
# Instância da classe desejada
self.update_service = update_service()
# Busca e retorna o registro de censec desejado
return {
'message': 'Registro de censec atualizado com sucesso',
'data': self.update_service.execute(censec_id, censec_schema)
}
# Exclui um registro de censec
def delete(self, censec_schema: TCensecIdSchema):
#Importação da classe desejada
delete_service = self.dynamic_import.service('t_censec_delete_service', 'DeleteService')
# Instância da classe desejada
self.delete_service = delete_service()
# Busca e retorna o registro de censec desejado
return {
'message': 'Registro de censec removido com sucesso',
'data': self.delete_service.execute(censec_schema)
}

View file

@ -0,0 +1,113 @@
from actions.dynamic_import.dynamic_import import DynamicImport
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import (
TCensecNaturezalitigioSchema,
TCensecNaturezalitigioSaveSchema,
TCensecNaturezalitigioUpdateSchema,
TCensecNaturezalitigioIdSchema,
TCensecNaturezalitigioDescricaoSchema
)
class TCensecNaturezalitigioController:
def __init__(self):
# Action responsável por carregar as services de acordo com o estado
self.dynamic_import = DynamicImport()
# Define o pacote que deve ser carregado
self.dynamic_import.set_package("administrativo")
# Define a tabela que o pacote pertence
self.dynamic_import.set_table("t_censec_naturezalitigio")
pass
# Lista todos os registros de natureza_litigio
def index(self):
# Importação da classe desejada
indexService = self.dynamic_import.service("t_censec_naturezalitigio_index_service", "IndexService")
# Instância da classe service
self.indexService = indexService()
# Lista todos os registros de natureza_litigio
return {
'message': 'Registros de natureza_litigio localizados com sucesso',
'data': self.indexService.execute()
}
# Busca um registro de natureza_litigio específico pelo ID
def show(self, censec_naturezalitigio_schema: TCensecNaturezalitigioIdSchema):
#Importação da classe desejada
show_service = self.dynamic_import.service('t_censec_naturezalitigio_show_service', 'ShowService')
# Instância da classe desejada
self.show_service = show_service()
# Busca e retorna o registro de natureza_litigio desejado
return {
'message': 'Registro de natureza_litigio localizado com sucesso',
'data': self.show_service.execute(censec_naturezalitigio_schema)
}
# Busca um registro de natureza_litigio pela descrição
def get_by_descricao(self, censec_naturezalitigio_schema: TCensecNaturezalitigioDescricaoSchema):
#Importação da classe desejada
show_service = self.dynamic_import.service('t_censec_naturezalitigio_get_descricao_service', 'GetByDescricaoService')
# Instância da classe desejada
self.show_service = show_service()
# Busca e retorna o registro de natureza_litigio desejado
return {
'message': 'Registro de natureza_litigio localizado com sucesso',
'data': self.show_service.execute(censec_naturezalitigio_schema, True)
}
# Cadastra um novo registro de natureza_litigio
def save(self, censec_naturezalitigio_schema: TCensecNaturezalitigioSaveSchema):
#Importação da classe desejada
save_service = self.dynamic_import.service('t_censec_naturezalitigio_save_service', 'SaveService')
# Instância da classe desejada
self.save_service = save_service()
# Busca e retorna o registro de natureza_litigio desejado
return {
'message': 'Registro de natureza_litigio salvo com sucesso',
'data': self.save_service.execute(censec_naturezalitigio_schema)
}
# Atualiza os dados de um registro de natureza_litigio
def update(self, censec_naturezalitigio_id: int, censec_naturezalitigio_schema: TCensecNaturezalitigioUpdateSchema):
#Importação da classe desejada
update_service = self.dynamic_import.service('t_censec_naturezalitigio_update_service', 'UpdateService')
# Instância da classe desejada
self.update_service = update_service()
# Busca e retorna o registro de natureza_litigio desejado
return {
'message': 'Registro de natureza_litigio atualizado com sucesso',
'data': self.update_service.execute(censec_naturezalitigio_id, censec_naturezalitigio_schema)
}
# Exclui um registro de natureza_litigio
def delete(self, censec_naturezalitigio_schema: TCensecNaturezalitigioIdSchema):
#Importação da classe desejada
delete_service = self.dynamic_import.service('t_censec_naturezalitigio_delete_service', 'DeleteService')
# Instância da classe desejada
self.delete_service = delete_service()
# Busca e retorna o registro de natureza_litigio desejado
return {
'message': 'Registro de natureza_litigio removido com sucesso',
'data': self.delete_service.execute(censec_naturezalitigio_schema)
}

View file

@ -0,0 +1,108 @@
# Importação de bibliotecas
from typing import Optional
from fastapi import APIRouter, Body, Depends, status
from actions.jwt.get_current_user import get_current_user
from packages.v1.administrativo.controllers.t_censec_controller import TCensecController
from packages.v1.administrativo.schemas.t_censec_schema import (
TCensecSchema,
TCensecSaveSchema,
TCensecUpdateSchema,
TCensecIdSchema
)
# Inicializa o roteador para as rotas do tipo de reconhecimento
router = APIRouter()
# Instanciamento do controller desejado
t_censec_controller = TCensecController()
# Lista todos os registros de censec
@router.get('/',
status_code=status.HTTP_200_OK,
summary='Lista todos os registros de censec cadastrados',
response_description='Lista todos os registros de censec cadastrados')
async def index(current_user: dict = Depends(get_current_user)):
# Busca todos os registros de censec cadastrados
response = t_censec_controller.index()
# Retorna os dados localizados
return response
# Localiza um registro de censec pela descrição
@router.get('/descricao',
status_code=status.HTTP_200_OK,
summary='Busca um registro de censec em específico pela descrição',
response_description='Busca um registro de censec em específico')
async def get_by_descricao(descricao : str, current_user: dict = Depends(get_current_user)):
# Cria o schema com os dados recebidos
censec_schema = TCensecSchema(descricao=descricao)
# Busca um registro de censec específico pela descrição
response = t_censec_controller.get_by_descricao(censec_schema)
# Retorna os dados localizados
return response
# Localiza um registro de censec pelo ID
@router.get('/{censec_id}',
status_code=status.HTTP_200_OK,
summary='Busca um registro de censec em específico pelo ID',
response_description='Busca um registro de censec em específico')
async def show(censec_id : int, current_user: dict = Depends(get_current_user)):
# Cria o schema com os dados recebidos
censec_schema = TCensecIdSchema(censec_id=censec_id)
# Busca um registro de censec específico pelo ID
response = t_censec_controller.show(censec_schema)
# Retorna os dados localizados
return response
# Cadastro de registro de censec
@router.post('/',
status_code=status.HTTP_201_CREATED,
summary='Cadastra um registro de censec',
response_description='Cadastra um registro de censec')
async def save(censec_schema: TCensecSaveSchema, current_user: dict = Depends(get_current_user)):
# Efetua o cadastro no banco de dados
response = t_censec_controller.save(censec_schema)
# Retorna os dados localizados
return response
# Atualiza os dados de um registro de censec
@router.put('/{censec_id}',
status_code=status.HTTP_200_OK,
summary='Atualiza um registro de censec',
response_description='Atualiza um registro de censec')
async def update(censec_id: int, censec_schema: TCensecUpdateSchema, current_user: dict = Depends(get_current_user)):
# Efetua a atualização dos dados
response = t_censec_controller.update(censec_id, censec_schema)
# Retorna os dados localizados
return response
# Exclui um determinado registro de censec
@router.delete('/{censec_id}',
status_code=status.HTTP_200_OK,
summary='Remove um registro de censec',
response_description='Remove um registro de censec')
async def delete(censec_id: int, current_user: dict = Depends(get_current_user)):
# Cria o schema com os dados recebidos
censec_schema = TCensecIdSchema(censec_id=censec_id)
# Efetua a exclusão do registro de censec
response = t_censec_controller.delete(censec_schema)
# Retorna os dados localizados
return response

View file

@ -0,0 +1,108 @@
# Importação de bibliotecas
from typing import Optional
from fastapi import APIRouter, Body, Depends, status
from actions.jwt.get_current_user import get_current_user
from packages.v1.administrativo.controllers.t_censec_naturezalitigio_controller import TCensecNaturezalitigioController
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import (
TCensecNaturezalitigioSchema,
TCensecNaturezalitigioSaveSchema,
TCensecNaturezalitigioUpdateSchema,
TCensecNaturezalitigioIdSchema
)
# Inicializa o roteador para as rotas do tipo de reconhecimento
router = APIRouter()
# Instanciamento do controller desejado
t_censec_naturezalitigio_controller = TCensecNaturezalitigioController()
# Lista todos os registros de natureza_litigio
@router.get('/',
status_code=status.HTTP_200_OK,
summary='Lista todos os registros de natureza_litigio cadastrados',
response_description='Lista todos os registros de natureza_litigio cadastrados')
async def index(current_user: dict = Depends(get_current_user)):
# Busca todos os registros de natureza_litigio cadastrados
response = t_censec_naturezalitigio_controller.index()
# Retorna os dados localizados
return response
# Localiza um registro de natureza_litigio pela descrição
@router.get('/descricao',
status_code=status.HTTP_200_OK,
summary='Busca um registro de natureza_litigio em específico pela descrição',
response_description='Busca um registro de natureza_litigio em específico')
async def get_by_descricao(descricao : str, current_user: dict = Depends(get_current_user)):
# Cria o schema com os dados recebidos
censec_naturezalitigio_schema = TCensecNaturezalitigioSchema(descricao=descricao)
# Busca um registro de natureza_litigio específico pela descrição
response = t_censec_naturezalitigio_controller.get_by_descricao(censec_naturezalitigio_schema)
# Retorna os dados localizados
return response
# Localiza um registro de natureza_litigio pelo ID
@router.get('/{censec_naturezalitigio_id}',
status_code=status.HTTP_200_OK,
summary='Busca um registro de natureza_litigio em específico pelo ID',
response_description='Busca um registro de natureza_litigio em específico')
async def show(censec_naturezalitigio_id : int, current_user: dict = Depends(get_current_user)):
# Cria o schema com os dados recebidos
censec_naturezalitigio_schema = TCensecNaturezalitigioIdSchema(censec_naturezalitigio_id=censec_naturezalitigio_id)
# Busca um registro de natureza_litigio específico pelo ID
response = t_censec_naturezalitigio_controller.show(censec_naturezalitigio_schema)
# Retorna os dados localizados
return response
# Cadastro de registro de natureza_litigio
@router.post('/',
status_code=status.HTTP_201_CREATED,
summary='Cadastra um registro de natureza_litigio',
response_description='Cadastra um registro de natureza_litigio')
async def save(censec_naturezalitigio_schema: TCensecNaturezalitigioSaveSchema, current_user: dict = Depends(get_current_user)):
# Efetua o cadastro no banco de dados
response = t_censec_naturezalitigio_controller.save(censec_naturezalitigio_schema)
# Retorna os dados localizados
return response
# Atualiza os dados de um registro de natureza_litigio
@router.put('/{censec_naturezalitigio_id}',
status_code=status.HTTP_200_OK,
summary='Atualiza um registro de natureza_litigio',
response_description='Atualiza um registro de natureza_litigio')
async def update(censec_naturezalitigio_id: int, censec_naturezalitigio_schema: TCensecNaturezalitigioUpdateSchema, current_user: dict = Depends(get_current_user)):
# Efetua a atualização dos dados
response = t_censec_naturezalitigio_controller.update(censec_naturezalitigio_id, censec_naturezalitigio_schema)
# Retorna os dados localizados
return response
# Exclui um determinado registro de natureza_litigio
@router.delete('/{censec_naturezalitigio_id}',
status_code=status.HTTP_200_OK,
summary='Remove um registro de natureza_litigio',
response_description='Remove um registro de natureza_litigio')
async def delete(censec_naturezalitigio_id: int, current_user: dict = Depends(get_current_user)):
# Cria o schema com os dados recebidos
censec_naturezalitigio_schema = TCensecNaturezalitigioIdSchema(censec_naturezalitigio_id=censec_naturezalitigio_id)
# Efetua a exclusão do registro de natureza_litigio
response = t_censec_naturezalitigio_controller.delete(censec_naturezalitigio_schema)
# Retorna os dados localizados
return response

View file

@ -0,0 +1,41 @@
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_schema import TCensecIdSchema
from fastapi import HTTPException, status
class DeleteRepository(BaseRepository):
"""
Repositório para a operação de exclusão de um registro na tabela
t_censec.
"""
def execute(self, censec_schema: TCensecIdSchema):
"""
Executa a consulta SQL para remover um registro pelo ID.
Args:
censec_schema (TCensecIdSchema): O esquema com o ID a ser removido.
Returns:
O resultado da operação de exclusão.
"""
try:
# Montagem do sql
sql = """ DELETE FROM T_CENSEC WHERE CENSEC_ID = :censec_id """
# Preenchimento de parâmetros
params = {
"censec_id": censec_schema.censec_id
}
# Execução do sql
response = self.run(sql, params)
# Retorna o resultado
return response
except Exception as e:
# Informa que houve uma falha na exclusão
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=f"Erro ao excluir CENSEC: {e}"
)

View file

@ -0,0 +1,29 @@
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_schema import TCensecDescricaoSchema
class GetByDescricaoRepository(BaseRepository):
"""
Repositório para a operação de busca de um registro na tabela
t_censec por descrição.
"""
def execute(self, censec_schema: TCensecDescricaoSchema):
"""
Executa a consulta SQL para buscar um registro pela descrição.
Args:
censec_schema (TCensecDescricaoSchema): O esquema com a descrição a ser buscada.
Returns:
Um dicionário contendo os dados do registro ou None se não for encontrado.
"""
# Montagem do SQL
sql = """ SELECT * FROM T_CENSEC WHERE DESCRICAO = :descricao """
# Preenchimento de parâmetros
params = {
'descricao': censec_schema.descricao
}
# Execução do sql
return self.fetch_one(sql, params)

View file

@ -0,0 +1,23 @@
from abstracts.repository import BaseRepository
class IndexRepository(BaseRepository):
"""
Repositório para a operação de listagem de todos os registros
na tabela t_censec.
"""
def execute(self):
"""
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 * FROM T_CENSEC """
# Execução do sql
response = self.fetch_all(sql)
# Retorna os dados localizados
return response

View file

@ -0,0 +1,53 @@
from fastapi import HTTPException, status
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_schema import TCensecSaveSchema
class SaveRepository(BaseRepository):
"""
Repositório para a operação de salvamento de um novo registro na tabela t_censec.
"""
def execute(self, censec_schema: TCensecSaveSchema):
"""
Executa a operação de salvamento no banco de dados.
Args:
censec_schema (TCensecSaveSchema): O esquema com os dados a serem salvos.
Returns:
O registro recém-criado.
Raises:
HTTPException: Caso ocorra um erro na execução da query.
"""
try:
# Montagem do SQL
sql = """ INSERT INTO T_CENSEC(
CENSEC_ID,
DESCRICAO,
SITUACAO
) VALUES (
:censec_id,
:descricao,
:situacao
) RETURNING *;"""
# Preenchimento de parâmetros
params = {
'censec_id': censec_schema.censec_id,
'descricao': censec_schema.descricao,
'situacao': censec_schema.situacao
}
# Execução do sql
return self.run_and_return(sql, params)
except Exception as e:
# Informa que houve uma falha no salvamento do registro
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=f"Erro ao salvar CENSEC: {e}"
)

View file

@ -0,0 +1,46 @@
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_schema import TCensecIdSchema
from fastapi import HTTPException, status
class ShowRepository(BaseRepository):
"""
Repositório para a operação de exibição de um registro na tabela t_censec.
"""
def execute(self, censec_schema: TCensecIdSchema):
"""
Busca um registro específico de CENSEC pelo ID.
Args:
censec_schema (TCensecIdSchema): O esquema que contém o ID do registro.
Returns:
O registro encontrado ou None se não existir.
Raises:
HTTPException: Caso ocorra um erro na execução da query.
"""
try:
# Montagem do SQL
sql = "SELECT * FROM T_CENSEC WHERE CENSEC_ID = :censec_id"
# Preenchimento de parâmetros
params = {
'censec_id': censec_schema.censec_id
}
# Execução do SQL
result = self.fetch_one(sql, params)
if not result:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="Registro não encontrado"
)
return result
except Exception as e:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=f"Erro ao buscar registro: {str(e)}"
)

View file

@ -0,0 +1,61 @@
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_schema import TCensecUpdateSchema
from fastapi import HTTPException, status
class UpdateRepository(BaseRepository):
"""
Repositório para a operação de atualização na tabela T_CENSEC.
"""
def execute(self, censec_id : int, censec_schema: TCensecUpdateSchema):
"""
Executa a atualização de um registro na tabela.
Args:
censec_id (int): O ID do registro a ser atualizado.
censec_schema (TCensecUpdateSchema): O esquema com os dados a serem atualizados.
Returns:
O registro atualizado.
Raises:
HTTPException: Se o registro não for encontrado ou ocorrer um erro na atualização.
"""
try:
updates = []
params = {}
if censec_schema.descricao is not None:
updates.append("DESCRICAO = :descricao")
params["descricao"] = censec_schema.descricao
if censec_schema.situacao is not None:
updates.append("SITUACAO = :situacao")
params["situacao"] = censec_schema.situacao
if not updates:
return False
params["censec_id"] = censec_id
sql = f"UPDATE T_CENSEC SET {', '.join(updates)} WHERE censec_id = :censec_id RETURNING *;"
# Executa a query
result = self.run_and_return(sql, params)
if not result.censec_id:
# Informa que não existe o registro a ser modificado
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail='Nenhum CENSEC localizado para esta solicitação'
)
# Se houver um resultado, a atualização foi bem-sucedida
if result:
return result
except Exception as e:
# Informa que houve uma falha na atualização
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=f"Erro ao atualizar o CENSEC: {e}"
)

View file

@ -0,0 +1,41 @@
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioIdSchema
from fastapi import HTTPException, status
class DeleteRepository(BaseRepository):
"""
Repositório para a operação de exclusão de um registro na tabela
t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioIdSchema):
"""
Executa a consulta SQL para remover um registro pelo ID.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioIdSchema): O esquema com o ID a ser removido.
Returns:
O resultado da operação de exclusão.
"""
try:
# Montagem do sql
sql = """ DELETE FROM T_CENSEC_NATUREZALITIGIO WHERE CENSEC_NATUREZALITIGIO_ID = :censec_naturezalitigio_id """
# Preenchimento de parâmetros
params = {
"censec_naturezalitigio_id": censec_naturezalitigio_schema.censec_naturezalitigio_id
}
# Execução do sql
response = self.run(sql, params)
# Retorna o resultado
return response
except Exception as e:
# Informa que houve uma falha na exclusão
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=f"Erro ao excluir CENSEC_NATUREZALITIGIO: {e}"
)

View file

@ -0,0 +1,29 @@
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioDescricaoSchema
class GetByDescricaoRepository(BaseRepository):
"""
Repositório para a operação de busca de um registro na tabela
t_censec_naturezalitigio por descrição.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioDescricaoSchema):
"""
Executa a consulta SQL para buscar um registro pela descrição.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioDescricaoSchema): O esquema com a descrição a ser buscada.
Returns:
Um dicionário contendo os dados do registro ou None se não for encontrado.
"""
# Montagem do SQL
sql = """ SELECT * FROM T_CENSEC_NATUREZALITIGIO WHERE DESCRICAO = :descricao """
# Preenchimento de parâmetros
params = {
'descricao': censec_naturezalitigio_schema.descricao
}
# Execução do sql
return self.fetch_one(sql, params)

View file

@ -0,0 +1,23 @@
from abstracts.repository import BaseRepository
class IndexRepository(BaseRepository):
"""
Repositório para a operação de listagem de todos os registros
na tabela t_censec_naturezalitigio.
"""
def execute(self):
"""
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 * FROM T_CENSEC_NATUREZALITIGIO """
# Execução do sql
response = self.fetch_all(sql)
# Retorna os dados localizados
return response

View file

@ -0,0 +1,53 @@
from fastapi import HTTPException, status
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioSaveSchema
class SaveRepository(BaseRepository):
"""
Repositório para a operação de salvamento de um novo registro na tabela t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioSaveSchema):
"""
Executa a operação de salvamento no banco de dados.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioSaveSchema): O esquema com os dados a serem salvos.
Returns:
O registro recém-criado.
Raises:
HTTPException: Caso ocorra um erro na execução da query.
"""
try:
# Montagem do SQL
sql = """ INSERT INTO T_CENSEC_NATUREZALITIGIO(
CENSEC_NATUREZALITIGIO_ID,
DESCRICAO,
SITUACAO
) VALUES (
:censec_naturezalitigio_id,
:descricao,
:situacao
) RETURNING *;"""
# Preenchimento de parâmetros
params = {
'censec_naturezalitigio_id': censec_naturezalitigio_schema.censec_naturezalitigio_id,
'descricao': censec_naturezalitigio_schema.descricao,
'situacao': censec_naturezalitigio_schema.situacao
}
# Execução do sql
return self.run_and_return(sql, params)
except Exception as e:
# Informa que houve uma falha no salvamento do registro
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=f"Erro ao salvar CENSEC_NATUREZALITIGIO: {e}"
)

View file

@ -0,0 +1,46 @@
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioIdSchema
from fastapi import HTTPException, status
class ShowRepository(BaseRepository):
"""
Repositório para a operação de exibição de um registro na tabela t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioIdSchema):
"""
Busca um registro específico de CENSEC_NATUREZALITIGIO pelo ID.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioIdSchema): O esquema que contém o ID do registro.
Returns:
O registro encontrado ou None se não existir.
Raises:
HTTPException: Caso ocorra um erro na execução da query.
"""
try:
# Montagem do SQL
sql = "SELECT * FROM T_CENSEC_NATUREZALITIGIO WHERE CENSEC_NATUREZALITIGIO_ID = :censec_naturezalitigio_id"
# Preenchimento de parâmetros
params = {
'censec_naturezalitigio_id': censec_naturezalitigio_schema.censec_naturezalitigio_id
}
# Execução do SQL
result = self.fetch_one(sql, params)
if not result:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="Registro não encontrado"
)
return result
except Exception as e:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail=f"Erro ao buscar registro: {str(e)}"
)

View file

@ -0,0 +1,61 @@
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioUpdateSchema
from fastapi import HTTPException, status
class UpdateRepository(BaseRepository):
"""
Repositório para a operação de atualização na tabela T_CENSEC_NATUREZALITIGIO.
"""
def execute(self, censec_naturezalitigio_id : int, censec_naturezalitigio_schema: TCensecNaturezalitigioUpdateSchema):
"""
Executa a atualização de um registro na tabela.
Args:
censec_naturezalitigio_id (int): O ID do registro a ser atualizado.
censec_naturezalitigio_schema (TCensecNaturezalitigioUpdateSchema): O esquema com os dados a serem atualizados.
Returns:
O registro atualizado.
Raises:
HTTPException: Se o registro não for encontrado ou ocorrer um erro na atualização.
"""
try:
updates = []
params = {}
if censec_naturezalitigio_schema.descricao is not None:
updates.append("DESCRICAO = :descricao")
params["descricao"] = censec_naturezalitigio_schema.descricao
if censec_naturezalitigio_schema.situacao is not None:
updates.append("SITUACAO = :situacao")
params["situacao"] = censec_naturezalitigio_schema.situacao
if not updates:
return False
params["censec_naturezalitigio_id"] = censec_naturezalitigio_id
sql = f"UPDATE T_CENSEC_NATUREZALITIGIO SET {', '.join(updates)} WHERE censec_naturezalitigio_id = :censec_naturezalitigio_id RETURNING *;"
# Executa a query
result = self.run_and_return(sql, params)
if not result.censec_naturezalitigio_id:
# Informa que não existe o registro a ser modificado
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail='Nenhum CENSEC_NATUREZALITIGIO localizado para esta solicitação'
)
# Se houver um resultado, a atualização foi bem-sucedida
if result:
return result
except Exception as e:
# Informa que houve uma falha na atualização
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=f"Erro ao atualizar o CENSEC_NATUREZALITIGIO: {e}"
)

View file

@ -0,0 +1,101 @@
from pydantic import BaseModel, field_validator, model_validator
from fastapi import HTTPException, status
from typing import Optional
# Funções para sanitização de entradas (evitar XSS, SQLi etc.)
from actions.validations.text import Text
# ----------------------------------------------------
# Schema base
# ----------------------------------------------------
class TCensecNaturezalitigioSchema(BaseModel):
censec_naturezalitigio_id: Optional[int] = None
descricao: Optional[str] = None
situacao: Optional[str] = None
class Config:
from_attributes = True
# ----------------------------------------------------
# Schema para localizar um CENSEC_NATUREZALITIGIO especifico pelo ID (GET)
# ----------------------------------------------------
class TCensecNaturezalitigioIdSchema(BaseModel):
censec_naturezalitigio_id: int
# ----------------------------------------------------
# Schema para localizar um CENSEC_NATUREZALITIGIO especifico pela descrição (GET)
# ----------------------------------------------------
class TCensecNaturezalitigioDescricaoSchema(BaseModel):
descricao: str
# ----------------------------------------------------
# Schema para criação de novo CENSEC_NATUREZALITIGIO (POST)
# ----------------------------------------------------
class TCensecNaturezalitigioSaveSchema(BaseModel):
censec_naturezalitigio_id: Optional[int] = None
descricao: str
situacao: str
# Sanitiza os inputs enviados
@field_validator('descricao', 'situacao')
def sanitize_fields(cls, v):
if v:
return Text.sanitize_input(v)
return v
# Verifica se os campos obrigatórios foram enviados
@model_validator(mode='after')
def validate_all_fields(self):
errors = []
if not self.descricao or len(self.descricao.strip()) == 0:
errors.append({'input': 'descricao', 'message': 'A descrição é obrigatória.'})
if not self.situacao or len(self.situacao.strip()) == 0:
errors.append({'input': 'situacao', 'message': 'A situação é obrigatória.'})
if errors:
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=errors
)
return self
# ----------------------------------------------------
# Schema para atualizar CENSEC_NATUREZALITIGIO (PUT)
# ----------------------------------------------------
class TCensecNaturezalitigioUpdateSchema(BaseModel):
descricao: Optional[str] = None
situacao: Optional[str] = None
# Sanitiza os inputs enviados
@field_validator('descricao', 'situacao')
def sanitize_fields(cls, v):
if v:
return Text.sanitize_input(v)
return v
# Verifica se os campos obrigatórios foram enviados
@model_validator(mode='after')
def validate_all_fields(self):
errors = []
if not self.descricao or len(self.descricao.strip()) == 0:
errors.append({'input': 'descricao', 'message': 'A descrição é obrigatória.'})
if not self.situacao or len(self.situacao.strip()) == 0:
errors.append({'input': 'situacao', 'message': 'A situação é obrigatória.'})
if errors:
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=errors
)
return self

View file

@ -0,0 +1,101 @@
from pydantic import BaseModel, field_validator, model_validator
from fastapi import HTTPException, status
from typing import Optional
# Funções para sanitização de entradas (evitar XSS, SQLi etc.)
from actions.validations.text import Text
# ----------------------------------------------------
# Schema base
# ----------------------------------------------------
class TCensecSchema(BaseModel):
censec_id: Optional[int] = None
descricao: Optional[str] = None
situacao: Optional[str] = None
class Config:
from_attributes = True
# ----------------------------------------------------
# Schema para localizar um CENSEC especifico pelo ID (GET)
# ----------------------------------------------------
class TCensecIdSchema(BaseModel):
censec_id: int
# ----------------------------------------------------
# Schema para localizar um CENSEC especifico pela descrição (GET)
# ----------------------------------------------------
class TCensecDescricaoSchema(BaseModel):
descricao: str
# ----------------------------------------------------
# Schema para criação de novo CENSEC (POST)
# ----------------------------------------------------
class TCensecSaveSchema(BaseModel):
censec_id: Optional[int] = None
descricao: str
situacao: str
# Sanitiza os inputs enviados
@field_validator('descricao', 'situacao')
def sanitize_fields(cls, v):
if v:
return Text.sanitize_input(v)
return v
# Verifica se os campos obrigatórios foram enviados
@model_validator(mode='after')
def validate_all_fields(self):
errors = []
if not self.descricao or len(self.descricao.strip()) == 0:
errors.append({'input': 'descricao', 'message': 'A descrição é obrigatória.'})
if not self.situacao or len(self.situacao.strip()) == 0:
errors.append({'input': 'situacao', 'message': 'A situação é obrigatória.'})
if errors:
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=errors
)
return self
# ----------------------------------------------------
# Schema para atualizar CENSEC (PUT)
# ----------------------------------------------------
class TCensecUpdateSchema(BaseModel):
descricao: Optional[str] = None
situacao: Optional[str] = None
# Sanitiza os inputs enviados
@field_validator('descricao', 'situacao')
def sanitize_fields(cls, v):
if v:
return Text.sanitize_input(v)
return v
# Verifica se os campos obrigatórios foram enviados
@model_validator(mode='after')
def validate_all_fields(self):
errors = []
if not self.descricao or len(self.descricao.strip()) == 0:
errors.append({'input': 'descricao', 'message': 'A descrição é obrigatória.'})
if not self.situacao or len(self.situacao.strip()) == 0:
errors.append({'input': 'situacao', 'message': 'A situação é obrigatória.'})
if errors:
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=errors
)
return self

View file

@ -0,0 +1,27 @@
from packages.v1.administrativo.schemas.t_censec_schema import TCensecIdSchema
from packages.v1.administrativo.actions.t_censec.t_censec_delete_action import DeleteAction
class DeleteService:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de exclusão de um registro na tabela t_censec.
"""
def execute(self, censec_schema: TCensecIdSchema):
"""
Executa a operação de exclusão do registro no banco de dados.
Args:
censec_schema (TCensecIdSchema): O esquema com o ID do registro a ser excluído.
Returns:
O resultado da operação de exclusão.
"""
# Instanciamento da ação
delete_action = DeleteAction()
# Executa a ação em questão
data = delete_action.execute(censec_schema)
# Retorno da informação
return data

View file

@ -0,0 +1,38 @@
from fastapi import HTTPException, status
from packages.v1.administrativo.schemas.t_censec_schema import TCensecDescricaoSchema
from packages.v1.administrativo.actions.t_censec.t_censec_get_by_descricao_action import GetByDescricaoAction
class GetByDescricaoService:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de busca de um registro na tabela t_censec pela sua descrição.
"""
def execute(self, censec_schema: TCensecDescricaoSchema, messageValidate: bool):
"""
Executa a operação de busca no banco de dados.
Args:
censec_schema (TCensecDescricaoSchema): O esquema com a descrição a ser buscada.
messageValidate (bool): Se True, lança uma exceção HTTP caso o registro não seja encontrado.
Returns:
O registro encontrado ou None.
"""
# Instanciamento da ação
show_action = GetByDescricaoAction()
# Executa a ação em questão
data = show_action.execute(censec_schema)
if messageValidate:
if not data:
# Retorna uma exceção
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail='Não foi possível localizar o registro de CENSEC'
)
# Retorno da informação
return data

View file

@ -0,0 +1,32 @@
from fastapi import HTTPException, status
from packages.v1.administrativo.actions.t_censec.t_censec_index_action import IndexAction
class IndexService:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de listagem de registros na tabela t_censec.
"""
def execute(self):
"""
Executa a operação de busca de todos os registros no banco de dados.
Returns:
A lista de registros encontrados.
"""
# Instanciamento da ação
index_action = IndexAction()
# Executa a busca de todas as ações
data = index_action.execute()
# Verifica se foram localizados registros
if not data:
# Retorna uma exceção
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail='Não foi possível localizar os registros de CENSEC'
)
# Retorna as informações localizadas
return data

View file

@ -0,0 +1,70 @@
from actions.dynamic_import.dynamic_import import DynamicImport
from packages.v1.sequencia.schemas.g_sequencia import GSequenciaSchema
from packages.v1.sequencia.services.g_sequencia.generate_service import GenerateService
from packages.v1.administrativo.schemas.t_censec_schema import TCensecSaveSchema, TCensecDescricaoSchema
from packages.v1.administrativo.actions.t_censec.t_censec_save_action import SaveAction
from fastapi import HTTPException, status
class SaveService:
def __init__(self):
# Ação responsável por carregar as services de acordo com o estado
self.dynamic_import = DynamicImport()
# Define o pacote que deve ser carregado
self.dynamic_import.set_package("administrativo")
# Define a tabela que o pacote pertence
self.dynamic_import.set_table("t_censec")
pass
# Cadastra o novo CENSEC
def execute(self, censec_schema: TCensecSaveSchema):
# Armazena possíveis erros
errors = []
# Verifica se a descrição já está sendo utilizada
# Importação de service
descricao_service = self.dynamic_import.service("t_censec_get_descricao_service", "GetByDescricaoService")
# Instanciamento da service
self.descricao_service = descricao_service()
# Verifica se a descrição já está sendo utilizada
self.response = self.descricao_service.execute(TCensecDescricaoSchema(descricao=censec_schema.descricao), False)
# Se houver retorno significa que a descrição já está sendo utilizada
if self.response:
errors.append({'input': 'descricao', 'message': 'a descrição informada já está sendo utilizada.'})
# Se houver erros, lança a exceção
if errors:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail=errors
)
# Verifica se precisa gerar o ID de sequência
if not censec_schema.censec_id:
# Crio um objeto de sequencia
sequencia_schema = GSequenciaSchema()
# Define os dados para atualizar a sequencia
sequencia_schema.tabela = 'T_CENSEC'
# Busco a sequência atualizada
generate = GenerateService()
# Busco a sequência atualizada
sequencia = generate.execute(sequencia_schema)
# Atualiza os dados da chave primária
censec_schema.censec_id = sequencia.sequencia
# Instanciamento de ações
save_action = SaveAction()
# Retorna o resultado da operação
return save_action.execute(censec_schema)

View file

@ -0,0 +1,35 @@
from fastapi import HTTPException, status
from packages.v1.administrativo.schemas.t_censec_schema import TCensecIdSchema
from packages.v1.administrativo.actions.t_censec.t_censec_show_action import ShowAction
class ShowService:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de busca de um registro na tabela t_censec.
"""
def execute(self, censec_schema: TCensecIdSchema):
"""
Executa a operação de busca no banco de dados.
Args:
censec_schema (TCensecIdSchema): O esquema com o ID a ser buscado.
Returns:
O resultado da busca.
"""
# Instanciamento da ação
show_action = ShowAction()
# Executa a ação em questão
data = show_action.execute(censec_schema)
if not data:
# Retorna uma exceção
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail='Não foi possível localizar o registro de CENSEC'
)
# Retorno da informação
return data

View file

@ -0,0 +1,23 @@
from packages.v1.administrativo.schemas.t_censec_schema import TCensecUpdateSchema
from packages.v1.administrativo.actions.t_censec.t_censec_update_action import UpdateAction
class UpdateService:
"""
Serviço para a operação de atualização de um registro na tabela
t_censec.
"""
def execute(self, censec_id : int, censec_schema: TCensecUpdateSchema):
"""
Executa a operação de atualização no banco de dados.
Args:
censec_schema (TCensecUpdateSchema): O esquema com os dados a serem atualizados.
Returns:
O resultado da operação de atualização.
"""
# Instanciamento de ações
update_action = UpdateAction()
# Retorna o resultado da operação
return update_action.execute(censec_id, censec_schema)

View file

@ -0,0 +1,27 @@
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioIdSchema
from packages.v1.administrativo.actions.t_censec_naturezalitigio.t_censec_naturezalitigio_delete_action import DeleteAction
class DeleteService:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de exclusão de um registro na tabela t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioIdSchema):
"""
Executa a operação de exclusão do registro no banco de dados.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioIdSchema): O esquema com o ID do registro a ser excluído.
Returns:
O resultado da operação de exclusão.
"""
# Instanciamento da ação
delete_action = DeleteAction()
# Executa a ação em questão
data = delete_action.execute(censec_naturezalitigio_schema)
# Retorno da informação
return data

View file

@ -0,0 +1,38 @@
from fastapi import HTTPException, status
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioDescricaoSchema
from packages.v1.administrativo.actions.t_censec_naturezalitigio.t_censec_naturezalitigio_get_by_descricao_action import GetByDescricaoAction
class GetByDescricaoService:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de busca de um registro na tabela t_censec_naturezalitigio pela sua descrição.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioDescricaoSchema, messageValidate: bool):
"""
Executa a operação de busca no banco de dados.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioDescricaoSchema): O esquema com a descrição a ser buscada.
messageValidate (bool): Se True, lança uma exceção HTTP caso o registro não seja encontrado.
Returns:
O registro encontrado ou None.
"""
# Instanciamento da ação
show_action = GetByDescricaoAction()
# Executa a ação em questão
data = show_action.execute(censec_naturezalitigio_schema)
if messageValidate:
if not data:
# Retorna uma exceção
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail='Não foi possível localizar o registro de CENSEC_NATUREZALITIGIO'
)
# Retorno da informação
return data

View file

@ -0,0 +1,32 @@
from fastapi import HTTPException, status
from packages.v1.administrativo.actions.t_censec_naturezalitigio.t_censec_naturezalitigio_index_action import IndexAction
class IndexService:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de listagem de registros na tabela t_censec_naturezalitigio.
"""
def execute(self):
"""
Executa a operação de busca de todos os registros no banco de dados.
Returns:
A lista de registros encontrados.
"""
# Instanciamento da ação
index_action = IndexAction()
# Executa a busca de todas as ações
data = index_action.execute()
# Verifica se foram localizados registros
if not data:
# Retorna uma exceção
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail='Não foi possível localizar os registros de CENSEC_NATUREZALITIGIO'
)
# Retorna as informações localizadas
return data

View file

@ -0,0 +1,70 @@
from actions.dynamic_import.dynamic_import import DynamicImport
from packages.v1.sequencia.schemas.g_sequencia import GSequenciaSchema
from packages.v1.sequencia.services.g_sequencia.generate_service import GenerateService
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioSaveSchema, TCensecNaturezalitigioDescricaoSchema
from packages.v1.administrativo.actions.t_censec_naturezalitigio.t_censec_naturezalitigio_save_action import SaveAction
from fastapi import HTTPException, status
class SaveService:
def __init__(self):
# Ação responsável por carregar as services de acordo com o estado
self.dynamic_import = DynamicImport()
# Define o pacote que deve ser carregado
self.dynamic_import.set_package("administrativo")
# Define a tabela que o pacote pertence
self.dynamic_import.set_table("t_censec_naturezalitigio")
pass
# Cadastra o novo CENSEC_NATUREZALITIGIO
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioSaveSchema):
# Armazena possíveis erros
errors = []
# Verifica se a descrição já está sendo utilizada
# Importação de service
descricao_service = self.dynamic_import.service("t_censec_naturezalitigio_get_descricao_service", "GetByDescricaoService")
# Instanciamento da service
self.descricao_service = descricao_service()
# Verifica se a descrição já está sendo utilizada
self.response = self.descricao_service.execute(TCensecNaturezalitigioDescricaoSchema(descricao=censec_naturezalitigio_schema.descricao), False)
# Se houver retorno significa que a descrição já está sendo utilizada
if self.response:
errors.append({'input': 'descricao', 'message': 'a descrição informada já está sendo utilizada.'})
# Se houver erros, lança a exceção
if errors:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail=errors
)
# Verifica se precisa gerar o ID de sequência
if not censec_naturezalitigio_schema.censec_naturezalitigio_id:
# Crio um objeto de sequencia
sequencia_schema = GSequenciaSchema()
# Define os dados para atualizar a sequencia
sequencia_schema.tabela = 'T_CENSEC_NATUREZALITIGIO'
# Busco a sequência atualizada
generate = GenerateService()
# Busco a sequência atualizada
sequencia = generate.execute(sequencia_schema)
# Atualiza os dados da chave primária
censec_naturezalitigio_schema.censec_naturezalitigio_id = sequencia.sequencia
# Instanciamento de ações
save_action = SaveAction()
# Retorna o resultado da operação
return save_action.execute(censec_naturezalitigio_schema)

View file

@ -0,0 +1,35 @@
from fastapi import HTTPException, status
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioIdSchema
from packages.v1.administrativo.actions.t_censec_naturezalitigio.t_censec_naturezalitigio_show_action import ShowAction
class ShowService:
"""
Serviço responsável por encapsular a lógica de negócio para a operação
de busca de um registro na tabela t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_schema: TCensecNaturezalitigioIdSchema):
"""
Executa a operação de busca no banco de dados.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioIdSchema): O esquema com o ID a ser buscado.
Returns:
O resultado da busca.
"""
# Instanciamento da ação
show_action = ShowAction()
# Executa a ação em questão
data = show_action.execute(censec_naturezalitigio_schema)
if not data:
# Retorna uma exceção
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail='Não foi possível localizar o registro de CENSEC_NATUREZALITIGIO'
)
# Retorno da informação
return data

View file

@ -0,0 +1,23 @@
from packages.v1.administrativo.schemas.t_censec_naturezalitigio_schema import TCensecNaturezalitigioUpdateSchema
from packages.v1.administrativo.actions.t_censec_naturezalitigio.t_censec_naturezalitigio_update_action import UpdateAction
class UpdateService:
"""
Serviço para a operação de atualização de um registro na tabela
t_censec_naturezalitigio.
"""
def execute(self, censec_naturezalitigio_id : int, censec_naturezalitigio_schema: TCensecNaturezalitigioUpdateSchema):
"""
Executa a operação de atualização no banco de dados.
Args:
censec_naturezalitigio_schema (TCensecNaturezalitigioUpdateSchema): O esquema com os dados a serem atualizados.
Returns:
O resultado da operação de atualização.
"""
# Instanciamento de ações
update_action = UpdateAction()
# Retorna o resultado da operação
return update_action.execute(censec_naturezalitigio_id, censec_naturezalitigio_schema)

View file

@ -11,6 +11,8 @@ from packages.v1.administrativo.endpoints import t_tb_reconhecimentotipo_endpoin
from packages.v1.administrativo.endpoints import t_tb_andamentoservico_endpoint
from packages.v1.administrativo.endpoints import g_tb_regimecomunhao_endpoint
from packages.v1.administrativo.endpoints import g_tb_regimebens_endpoint
from packages.v1.administrativo.endpoints import t_censec_endpoint
from packages.v1.administrativo.endpoints import t_censec_naturezalitigio_endpoint
# Cria uma instância do APIRouter que vai agregar todas as rotas da API
api_router = APIRouter()
@ -59,3 +61,15 @@ api_router.include_router(
api_router.include_router(
g_tb_regimebens_endpoint.router, prefix="/administrativo/g_tb_regimebens", tags=["Regime de bens"]
)
# Inclui as rotas de t_censec
api_router.include_router(
t_censec_endpoint.router, prefix="/administrativo/t_censec", tags=["CENSEC"]
)
# Inclui as rotas de t_censec_naturezalitigio
api_router.include_router(
t_censec_naturezalitigio_endpoint.router, prefix="/administrativo/t_censec_naturezalitigio", tags=["CENSEC - Natureza Litígio"]
)