1. Visão geral
A Operação Curiosidade permite administrar informações sobre uma pessoa em quatro camadas: Fatos & Dados, Interesses, Sentimentos e Valores. O backend expõe endpoints REST para autenticação e gerenciamento de usuários (com suas curiosidades), consumidos pelo front em Angular.
2. Objetivos de engenharia
- Código limpo, legível e modular.
- Camadas separadas (Application/Domain/Infra/UI) para facilitar testes e evolução.
- Segurança básica (JWT) e mitigação de ataques comuns (SQL injection).
- Decisões e trade‑offs documentados.
3. Arquitetura (alto nível)
graph TD
A[Angular 19 Material] -->|JWT| B[WebApi .NET 8]
B --> C[Application UseCases/DTOs]
C --> D[Domain/Models Entities, Repos Interfaces]
D --> E[Infra EF Core, MySQL, Migrations]
E --> F[MySQL DB]
3.1 Pastas/Projetos
- WebApi: Controllers, Program, Middlewares mínimos, DI.
- WebApi.Application: UseCases, DTOs de request/response, Handlers.
- WebApi.Models: Entities, Enums, Interfaces de Repositório, Dtos compartilhados (filtros, paginação).
- WebApi.Infra: DbContext, Mappings, Migrations, Implementações de Repositório (EF Core).
- WebApi.NativeInjector: Registro de dependências (UseCases/Repos/Services).
4. Domínio & Entidades
4.1 User
Id: long
Name: string
(required, unique pair with email?)