# Contracts - {{titleCase FEATURE_NAME}}

> Estrutura de contracts para features complexas

## Estrutura

```
contracts/
├── README.md              # Este arquivo (índice)
├── Entities/              # Entidades de domínio
│   └── I{{pascalCase FEATURE_NAME}}Entity.cs
├── Commands/              # Commands (CQRS)
│   └── I{{pascalCase FEATURE_NAME}}Commands.cs
├── Queries/               # Queries (CQRS)
│   └── I{{pascalCase FEATURE_NAME}}Queries.cs
├── DTOs/                  # Data Transfer Objects
│   └── {{pascalCase FEATURE_NAME}}Dto.cs
├── Events/                # Domain Events
│   └── {{pascalCase FEATURE_NAME}}Events.cs
└── Services/              # Service Interfaces
    └── I{{pascalCase FEATURE_NAME}}Service.cs
```

## Quando usar pasta vs arquivo único

| Cenário | Usar |
|---------|------|
| < 5 interfaces/DTOs | `contracts.cs` (arquivo único) |
| 5-15 interfaces/DTOs | `contracts/` (pasta organizada) |
| > 15 interfaces/DTOs | `contracts/` + subpastas por domínio |

## Convenções

1. **Prefixo `I`** para interfaces: `IOrderService`, `IPaymentGateway`
2. **Sufixo `Dto`** para DTOs: `OrderDto`, `OrderCreateDto`
3. **Sufixo `Command`** para commands: `CreateOrderCommand`
4. **Sufixo `Query`** para queries: `GetOrderByIdQuery`
5. **Sufixo `Event`** para eventos: `OrderCreatedEvent`

## Índice de Contracts

### Entidades

| Interface | Descrição | Arquivo |
|-----------|-----------|---------|
| _A ser preenchido_ | | |

### Commands

| Command | Handler | Descrição |
|---------|---------|-----------|
| _A ser preenchido_ | | |

### Queries

| Query | Handler | Descrição |
|-------|---------|-----------|
| _A ser preenchido_ | | |

### DTOs

| DTO | Usado em | Descrição |
|-----|----------|-----------|
| _A ser preenchido_ | | |

### Services

| Interface | Implementação | Descrição |
|-----------|---------------|-----------|
| _A ser preenchido_ | | |

---

_Gerado por MORPH-SPEC Framework_
