Início
Este diretório contém a documentação completa de todos os contratos (Commands e Queries) da API Santa Mão, organizados por agregados e recursos, seguindo os padrões de Domain-Driven Design (DDD) e Command Query Responsibility Segregation (CQRS).
Índice de Documentações
Agregados Principais
1. User (Usuários)
Gerenciamento completo de usuários clientes do sistema.
Sub-recursos:
- Users (Usuários)
- UserAddresses (Endereços)
- UserDocuments (Documentos)
- UserFavoriteSkills (Habilidades Favoritas)
- UserFiles (Arquivos)
- UserDiscounts (Descontos)
- UserPaymentMethods (Métodos de Pagamento)
- UserNotifications (Notificações)
- UserRequests (Solicitações)
2. ProfessionalUser (Usuários Profissionais)
Gerenciamento de profissionais prestadores de serviço.
Sub-recursos:
- ProfessionalUsers (Usuários Profissionais)
- ProfessionalUserAddresses (Endereços)
- ProfessionalUserDocuments (Documentos)
- ProfessionalUserSkills (Habilidades)
- ProfessionalUserAvailabilities (Disponibilidades)
- ProfessionalUserAgendas (Agendas)
- ProfessionalUserPaymentMethods (Métodos de Pagamento)
- ProfessionalUserNotifications (Notificações)
- ProfessionalUserCities (Cidades)
- ProfessionalUserJobs (Profissões)
- ProfessionalUserTasks (Tarefas)
- ProfessionalUserResponses (Respostas)
- ProfessionalUserPerformances (Avaliações)
3. Job (Profissão)
Gerenciamento de categorias de serviços e suas configurações.
Sub-recursos:
- Jobs (Trabalhos)
- JobTasks (Tarefas de Trabalho)
- JobCities (Cidades do Trabalho)
- JobTaskCities (Cidades da Tarefa)
- JobTaskSkills (Habilidades da Tarefa)
- JobTaskEstimates (Estimativas da Tarefa)
- JobPackages (Pacotes de Trabalho)
- JobPackageTasks (Tarefas do Pacote)
Destaque: Sistema de precificação dinâmica com atributos e multiplicadores.
4. Request (Orçamentos)
Gerenciamento de orçamentos de serviço dos usuários.
Sub-recursos:
- Requests (Orçamentos)
- RequestItems (Itens de Orçamento)
- RequestItemResponses (Respostas de Itens)
5. Order (Pedidos)
Gerenciamento de pedidos confirmados e processamento de pagamentos.
Sub-recursos:
- Orders (Pedidos)
- OrderItems (Itens de Pedido)
- OrderPayments (Pagamentos)
Recursos Compartilhados (SharedManagement)
6. Cities (Cidades)
Gerenciamento de cidades disponíveis para prestação de serviços.
Operações:
- Criação e exclusão de cidades
- Busca e pesquisa com filtros avançados
- Associação com Jobs e Profissionais
7. Skills (Habilidades)
Gerenciamento de habilidades/competências do sistema.
Operações:
- Criação e exclusão de habilidades
- Associação com JobTasks, Users e ProfessionalUsers
- Sistema de matching baseado em skills
8. Discounts (Descontos)
Gerenciamento de cupons e promoções de desconto.
Operações:
- Criação, atualização e exclusão de descontos
- Tipos: Porcentagem ou Valor Fixo
- Validação de uso (período, limite, valor mínimo)
- Descontos públicos e privados
Destaque: Sistema completo de validação e aplicação de descontos.
9. NotificationTemplates (Templates de Notificação)
Gerenciamento de templates para notificações multi-canal.
Operações:
- Criação, atualização e exclusão de templates
- Canais: Email, WhatsApp, SMS
- 31 razões de notificação diferentes
- Sistema de prioridades
- Templates genéricos e específicos por JobTask
- Suporte a placeholders dinâmicos
Destaque: Sistema inteligente de seleção de templates baseado em prioridade e especificidade.
10. Contracts (Contratos)
Gerenciamento de contratos e sua associação com profissionais.
Sub-recursos:
- Contracts (Contratos)
- ContractTypes (Tipos de Contrato)
- ContractFiles (Arquivos de Contrato)
- ProfessionalUserContracts (Contratos de Profissionais)
Operações:
- Criação, atualização e exclusão de contratos
- Upload de arquivos com versionamento
- Assinatura de contratos por profissionais
- Geração de URLs públicas para arquivos
- Soft delete e hard delete
Destaque: Sistema completo de gestão de contratos com suporte a múltiplas versões de arquivos e assinatura digital.
11. Terms & Privacy (Termos e Privacidade)
Gerenciamento de termos de uso, políticas de privacidade e aceites.
Sub-recursos:
- Terms (Termos)
- UserTermAcceptances (Aceites de Termos do Usuário)
- ProfessionalUserTermAcceptances (Aceites de Termos do Profissional)
Operações:
- Criação, atualização e arquivamento de termos
- Aceite de termos por usuários e profissionais
- Verificação de termos pendentes (HasPendingTerms)
- Pesquisa de aceites com filtros avançados
- Rastreabilidade completa (IP, User-Agent)
Destaque: Sistema de gestão de conformidade (compliance) com termos versionados e rastreamento de aceites seguindo padrões DDD.
Estrutura Padrão de Cada Documentação
Cada documentação contém:
1. Visão Geral: Descrição do agregado/recurso
2. Commands (Comandos): Operações de escrita
- Contrato (Command)
- Campos necessários e opcionais
- Validações (FluentValidation)
- Retorno
- Handler
- Eventos de Domínio
- Regras de Negócio
- Exemplos de uso (JSON)
- Exemplos de resposta (JSON)
3. Queries (Consultas): Operações de leitura
- Contrato (Query)
- Parâmetros
- Retorno
- Handler e Mapper
- Descrição
- Exemplos de uso (JSON)
- Exemplos de resposta (JSON)
4. Value Objects: Objetos de valor utilizados (quando aplicável)
5. Enums: Enumerações utilizadas (quando aplicável)
6. Relacionamentos: Como se relaciona com outros agregados
7. Conceitos de DDD e CQRS: Aplicação dos padrões
8. Observações Importantes: Melhores práticas e dicas
Como Usar Esta Documentação
Para Desenvolvedores
1. Implementando uma Feature:
- Localize o agregado relacionado
- Verifique os Commands/Queries disponíveis
- Consulte os exemplos de uso
- Valide as regras de negócio
2. Entendendo Validações:
- Cada comando lista todas as validações do FluentValidation
- Regras de negócio adicionais estão na seção "Regras de Negócio"
3. Trabalhando com Relacionamentos:
- Seção "Relacionamentos" mostra associações
- Cross-references entre documentações
Para QA/Testers
1. Casos de Teste:
- Use os exemplos JSON como base
- Validações listadas = casos de teste negativos
- Regras de negócio = cenários de teste
2. Validação de Respostas:
- Exemplos de resposta mostram estrutura esperada
- Campos de auditoria sempre presentes (Created/Updated)
Para Product Owners
1. Entendendo Funcionalidades:
- "Visão Geral" explica o propósito
- "Regras de Negócio" detalha comportamentos
- Exemplos ilustram casos de uso reais