tassiovale/euvoudoar

Recurso /institutions/{institutionId}/donation_profiles

Opened this issue · 0 comments

Descrição

Uma instituição poderá configurar o formato das doações que deseja receber. Ex.: lar dos idosos configura uma doação recorrente de 30 reais por mês e realiza uma campanha com os seus doadores.

Este perfil de doação deverá armazenar as informações recorrência (semanal, mensal, anual) e limite de aplicação da recorrência.

Apenas administrador e membro da instituição podem gerenciar os perfis de doação.

Formato básico do objeto do perfil de recorrência

{
    "id": "52ccd81f-c1d3-4112-9628-5648a6c13baf"
    "name": "Contribuição mensal",
    "institutionId": "03046662-93e5-4c5b-b426-f34082397e44",
    "recurrence": "weekly", // "weekly" | "monthly" | "yearly",
    "recurrenceExpirationDate": "2022-11-20 14:32:00",
    "createdAt": "2022-11-20 14:32:00",
    "updatedAt": "2022-11-20 14:32:00",
    "deletedAt": null,
    "createdBy": "03046662-93e5-4c5b-b426-f34082397e44",
    "updatedBy": "03046662-93e5-4c5b-b426-f34082397e44",
    "deletedBy": null
}

Formato para busca

{
    "id": "52ccd81f-c1d3-4112-9628-5648a6c13baf"
    "name": "Contribuição mensal",
    "institutionId": "03046662-93e5-4c5b-b426-f34082397e44",
    "recurrence": "weekly", // "weekly" | "monthly" | "yearly",
    "recurrenceExpirationDate": "2022-11-20 14:32:00",
    "createdAt": "2022-11-20 14:32:00",
    "updatedAt": "2022-11-20 14:32:00",
    "deletedAt": null,
    "createdBy": {
        "id": "03046662-93e5-4c5b-b426-f34082397e44",
        "name": "Fulano"
    },
    "updatedBy": {
        "id": "03046662-93e5-4c5b-b426-f34082397e44",
        "name": "Fulano"
    },
    "deletedBy": null
}

Rotas

POST /institutions/{institutionId}/donation_profiles

Rota para criação do perfil de doação no sistema. Apenas usuários com perfil administrador e membro da instituição poderão criar perfil de doação.

  • Request body: objeto de perfil de doação
  • Response body: objeto de perfil de doação (com data de criação, atualização, e usuário responsável)

PUT /institutions/{institutionId}/donation_profiles/{profileId}

Rota para atualização de perfis de doação no sistema. Deve ser fornecido no request sempre o objeto completo.

  • Request body: objeto de perfil de doação
  • Response body: objeto de perfil de doação (com data de criação, atualização, e usuário responsável)

GET /institutions/{institutionId}/donation_profiles?page=10&limit=5&keyword=XPTO

Rota para atualização de perfis de doação no sistema. A palavra-chave deverá buscar por nome da instituição e nome do perfil.

  • Request body: N/A
  • Response body: array objetos de perfis de doação paginados (formato de busca)

GET /institutions/{institutionId}/donation_profiles/{profileId}

Rota para obter os detalhes de uma perfil de doação no sistema.

  • Request body: N/A
  • Response body: objeto de perfil de doação (formato de busca)

DELETE /institutions/{institutionId}/donation_profiles/{profileId}

Rota para remover um perfil de doação do sistema. Esquema de soft delete (deletedAt quando não for nulo, indica que o item foi deletado). Itens deletados não aparecerão na busca padrão.

  • Request body: N/A
  • Response body: objeto de perfil de doação removido (com deletedAt e deletedBy atualizado)