Skip to content

Refatoração de Criação de Cursinho Parceiro (PartnerPrepCourse) — Adequação à LGPD #318

Description

@FernandoAlmeidaPinto

Discussed in https://github.com/orgs/vcnafacul/discussions/32

Originally posted by FernandoAlmeidaPinto April 28, 2025

🎯 Objetivo

Refatorar o processo de criação de um cursinho parceiro, garantindo a coleta de informações obrigatórias para conformidade com a LGPD e formalização da parceria entre o projeto Você na Facul e os cursinhos populares.

📚 Contexto

Atualmente, ao criar uma entidade PartnerPrepCourse, solicitamos apenas:

  • geoId → Identificação da localização do cursinho (referência à tabela Geolocation)
  • representative → Usuário que será o administrador inicial do cursinho

Entretanto, para adequação às exigências da LGPD e para dar maior segurança ao projeto, esse processo precisa ser aprimorado.
A partir desta refatoração, na criação de um cursinho parceiro, serão obrigatórios:

  • Logo do cursinho (talvez não seja obrigatório)
  • Contrato de parceria entre o cursinho e o projeto (upload obrigatório)

Além disso, será necessário:

  • Gerar automaticamente o Termo de Uso personalizado para o cursinho, com o nome do cursinho e do projeto, e com o detalhamento de como os dados dos estudantes serão utilizados.

O termo de uso será gerado internamente no processo de criação, baseado em um template padrão. O link para o arquivo gerado será armazenado no PartnerPrepCourse.

🛠️ Mudanças a serem implementadas

1. Refatoração do DTO PartnerPrepCourseDtoInput

O novo DTO de criação de cursinho parceiro deverá receber:

  • geoId (obrigatório — já existente)
  • representative (obrigatório — já existente)
  • logo (obrigatório — upload)
  • partnershipAgreement (obrigatório — upload)

O campo termOfUse será preenchido automaticamente durante o processo de criação (não será enviado pelo usuário).

2. Atualização da Entidade PartnerPrepCourse

Adicionar na entidade:

  • logoUrl: string → URL da logo salva no bucket.
  • partnershipAgreementUrl: string → URL do contrato salvo no bucket.
  • termOfUseUrl: string → URL do termo de uso personalizado.

3. Processo de Criação

Novo fluxo de criação:

  1. Validar e receber geoId, representative, logo e partnershipAgreement.
  2. Armazenar o logo e o contrato em bucket (ex.: AWS S3).
  3. Gerar o termo de uso personalizado baseado no template padrão.
    • Inserir dinamicamente o nome do cursinho e do projeto no texto do termo.
  4. Armazenar o termo de uso gerado no bucket e capturar a URL.
  5. Criar o PartnerPrepCourse no banco de dados apenas depois que todos os arquivos estiverem salvos e os links definidos.

4. Justificativas (Motivação)

  • LGPD: Garantir que as informações sobre coleta e uso de dados estejam formalmente documentadas.
  • Segurança jurídica: Formalizar a relação entre o projeto e o cursinho.
  • Clareza para o estudante: Apresentar o termo de uso correto no momento do cadastro.
  • Organização: Ter todos os arquivos essenciais vinculados ao cursinho desde sua criação.

✅ Critérios de Aceitação

  • logoUrl e partnershipAgreementUrl obrigatórios no momento da criação.
  • termOfUseUrl gerado e salvo automaticamente no processo de criação.
  • Novo fluxo integrado e validado em testes de criação de cursinho parceiro.
  • As URLs devem ser persistidas na tabela PartnerPrepCourse.
  • Caso ocorra erro em qualquer etapa (upload ou geração do termo), o cursinho não deve ser criado.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions