Skip to main content

Biblioteca para gerenciamento de pessoas e endereços, utilizando banco de dados em memória com SQLModel.

Project description

PERSONADRESSsaraivagustavo

PyPI License

Biblioteca para gerenciamento de pessoas e endereços, utilizando banco de dados com SQLModel.

📜 Descrição

PERSONADRESSsaraivagustavo é uma biblioteca Python que fornece uma arquitetura robusta de serviços (Service) e repositórios (Repository) para gerenciar entidades como Pessoas e Endereços. Ela é construída com SQLModel, o que permite fácil interação com o banco de dados e validação de dados em um só lugar.

Esta biblioteca foi projetada para ser facilmente integrada em qualquer aplicação Python, especialmente em APIs web (como FastAPI), fornecendo uma camada de lógica de negócios e acesso a dados limpa e reutilizável.

✨ Recursos

  • Modelos SQLModel: Define modelos de banco de dados claros para Pessoa (com relacionamento para Endereços) e Endereco.
  • Arquitetura em Camadas: Separação clara de responsabilidades com:
    • Models: Modelos de tabela do banco de dados.
    • DTOs: Objetos de Transferência de Dados (PessoaCreate, EnderecoUpdate, etc.) para validação de entrada e saída.
    • Repository: Camada genérica de acesso a dados (CRUD) para interagir com o banco.
    • Service: Camada de lógica de negócios que utiliza os repositórios.
  • Pronto para FastAPI: Inclui utilitários prontos para injeção de dependência (SessionDep) e inicialização (init_db).

📦 Instalação

Você pode instalar a biblioteca diretamente do PyPI:

pip install PERSONADRESSsaraivagustavo

A biblioteca requer sqlmodel, typing_extensions e fastapi, que serão instalados automaticamente.

🚀 Uso Rápido (Quick Start)

Aqui está um exemplo básico de como usar a biblioteca para criar uma pessoa e um endereço.

Python

from sqlmodel import Session
from PALib.database.database import init_db, engine
from PALib.models.models import Pessoa, Endereco
from PALib.models.dto import PessoaCreate, EnderecoCreate
from PALib.repository.base import Repository
from PALib.service.service import Service

# 1. Inicialize o banco de dados (cria as tabelas)
# Você só precisa executar isso uma vez na sua aplicação.
init_db()

# 2. Instancie os Repositórios e Serviços
pessoa_repo = Repository(Pessoa)
pessoa_service = Service(pessoa_repo)

endereco_repo = Repository(Endereco)
endereco_service = Service(endereco_repo)

# 3. Use o serviço para criar uma pessoa
with Session(engine) as session:
    try:
        # Criando uma Pessoa
        nova_pessoa_data = PessoaCreate(
            nome="Gustavo Saraiva",
            idade=20,
            email="gustavosaraiva@email.com"
        )
        
        pessoa_criada = pessoa_service.create(session, nova_pessoa_data)
        
        print(f"Pessoa criada com sucesso!")
        print(f"ID: {pessoa_criada.id}, Nome: {pessoa_criada.nome}")

        # Criando um Endereço para essa Pessoa
        novo_endereco_data = EnderecoCreate(
            logradouro="Rua do Teste",
            numero=123,
            estado="ES",
            cidade="Vila Velha",
            bairro="TestesPython",
            id_pessoa=pessoa_criada.id
        )
        
        endereco_criado = endereco_service.create(session, novo_endereco_data)
        
        print(f"Endereço criado com sucesso!")
        print(f"ID: {endereco_criado.id}, Logradouro: {endereco_criado.logradouro}")

        # Listando todas as pessoas
        todas_as_pessoas = pessoa_service.list(session)
        print(f"\nTotal de pessoas no banco: {len(todas_as_pessoas)}")

    except Exception as e:
        print(f"Ocorreu um erro: {e}")

🧑‍💻 Autor

Gustavo Saraiva Mariano
📧 Email: gsaraivam10@gmail.com
💻 GitHub: saraivagustavo

⚖️ Licença

Este projeto é licenciado sob a Licença MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

personadresssaraivagustavo-0.1.0.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

personadresssaraivagustavo-0.1.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file personadresssaraivagustavo-0.1.0.tar.gz.

File metadata

File hashes

Hashes for personadresssaraivagustavo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a85967e74af6364d9f60d46b54319c789f85c5d7a69874fa23751ae2523dbb88
MD5 7d36a190bd96fa6d096685a8108f7a45
BLAKE2b-256 f4817bec4f7f67d16ccdab1f37bb159386e433b74695844e821947b7bfa6fa48

See more details on using hashes here.

File details

Details for the file personadresssaraivagustavo-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for personadresssaraivagustavo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a19e6dd0f7c3288b89b6fd424340958a726a67922dc77f166bbd109e29c9c51b
MD5 8a2c8482ff88cf09a0057004fd404fba
BLAKE2b-256 960015862f49555ec82cb2b6238a4f7365f46f72c07baf29f181de4852344601

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page