Pular para conteúdo

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