How misael-jk/pizzaria-tp works
Purpose and entry point
This is a .NET pizzeria backend organized as a layered solution: HTTP API, business services, domain model/contracts, and persistence. The runtime entry point is src/Pizzeria/API/Program.cs; the solution root is src/Pizzeria/Pizzeria.sln.
HTTP API boundary
Minimal/API endpoint modules expose operations for customers, pizzas, and orders. They accept request DTOs and delegate to services rather than accessing repositories directly.
• src/Pizzeria/API/Endpoints/ClienteEndpoints.cs
• src/Pizzeria/API/Endpoints/PizzaEndpoints.cs
• src/Pizzeria/API/Endpoints/PedidoEndpoints.cs
• src/Pizzeria/API/DTO/CearPedidoDto.cs
• src/Pizzeria/API/DTO/DetalleDto.cs
Domain model
The domain layer defines the central business records: customers, pizza catalog entries, orders, and order-line details. Order lifecycle state is represented separately by an enum.
• src/Pizzeria/Dominio/Entidades/Cliente.cs
• src/Pizzeria/Dominio/Entidades/Pizza.cs
• src/Pizzeria/Dominio/Entidades/Pedido.cs
• src/Pizzeria/Dominio/Entidades/DetallePedido.cs
• src/Pizzeria/Dominio/Enums/EstadoPedido.cs
Service/application layer
Services implement use-case orchestration between API-facing operations and repository contracts. The order service is the key transaction/business-flow boundary: it likely coordinates customer lookup, pizza/detail handling, order creation, and state handling.
• src/Pizzeria/Servicios/Service/ClienteService.cs
• src/Pizzeria/Servicios/Service/PizzaService.cs
• src/Pizzeria/Servicios/Service/PedidoService.cs
• src/Pizzeria/Servicios/Interface/IPedidoService.cs
Persistence abstraction and implementations
The domain owns repository interfaces, keeping storage concerns outside the domain. Persistence supplies concrete repositories, with RepoBase providing shared database access behavior.
• src/Pizzeria/Dominio/Interfaces/IClienteRepository.cs
• src/Pizzeria/Dominio/Interfaces/IPizzaRepository.cs
• src/Pizzeria/Dominio/Interfaces/IPedidoRepository.cs
• src/Pizzeria/Persistencia/RepoBase.cs
• src/Pizzeria/Persistencia/Repos/PedidoRepository.cs
Primary flow and boundaries
A request flows from an endpoint to its service interface/implementation, then through a domain repository interface to a persistence repository and database. Results return through the same layers. DTOs form the HTTP input boundary; domain entities form the core business/storage model; repository interfaces form the dependency-inversion boundary between services/domain and persistence.
Database and infrastructure
Database structure and seed/sample data are maintained as SQL artifacts, external to the .NET projects:
• DataBase/schema.sql
• DataBase/inserts.sql
The API has development runtime configuration in src/Pizzeria/API/appsettings.Development.json and launch profiles in src/Pizzeria/API/Properties/launchSettings.json. No frontend, message broker, or external third-party service integration is evident from the repository tree.
Main entry points: IPedidoRepository.cs Repository Contracts · Program.cs API Host · PedidoService.cs Order Service · PedidoRepository.cs Order Repository
Components 16
HTTP API
- API Host · Configures the HTTP runtime and dependencies.
src/Pizzeria/API/Program.cs - Customer Endpoints
src/Pizzeria/API/Endpoints/ClienteEndpoints.cs - Pizza Endpoints
src/Pizzeria/API/Endpoints/PizzaEndpoints.cs - Order Endpoints
src/Pizzeria/API/Endpoints/PedidoEndpoints.cs - Order Request DTOs · Order creation and line-detail input models.
src/Pizzeria/API/DTO/CearPedidoDto.cs
Application Services
- Customer Service
src/Pizzeria/Servicios/Service/ClienteService.cs - Pizza Service
src/Pizzeria/Servicios/Service/PizzaService.cs - Order Service Contract
src/Pizzeria/Servicios/Interface/IPedidoService.cs - Order Service · Coordinates order creation, customer lookup, pizzas, details, and lifecycle state.
src/Pizzeria/Servicios/Service/PedidoService.cs
Domain
- Core Entities · Customers, pizzas, orders, and order details.
src/Pizzeria/Dominio/Entidades/Pedido.cs - Order State
src/Pizzeria/Dominio/Enums/EstadoPedido.cs - Repository Contracts · Storage abstraction owned by the domain.
src/Pizzeria/Dominio/Interfaces/IPedidoRepository.cs
Persistence
- Repository Base · Provides shared database-access behavior.
src/Pizzeria/Persistencia/RepoBase.cs - Order Repository
src/Pizzeria/Persistencia/Repos/PedidoRepository.cs
Database
- SQL Schema
DataBase/schema.sql - Sample Data
DataBase/inserts.sql
Connections 17
- API Host → Customer Endpoints: hosts
- API Host → Pizza Endpoints: hosts
- API Host → Order Endpoints: hosts
- Order Request DTOs → Order Endpoints: request input
- Customer Endpoints → Customer Service: delegates
- Pizza Endpoints → Pizza Service: delegates
- Order Endpoints → Order Service Contract: delegates
- Order Service → Order Service Contract: implements
- Customer Service → Repository Contracts: uses
- Pizza Service → Repository Contracts: uses
- Order Service → Repository Contracts: uses
- Order Service → Core Entities: orchestrates
- Core Entities → Order State: uses
- Order Repository → Repository Contracts: implements
- Order Repository → Repository Base: extends
- Order Repository → SQL Schema: persists to
- Sample Data → SQL Schema: populates