Skip to content

Feature/2 gestao disciplinas

Letícia Ribeiro requested to merge feature/2-gestao-disciplinas into main

O que foi feito

Implementação completa das histórias de Gestão de Disciplinas e Vínculo Monitor-Disciplina, cobrindo 13 SP.


Mudanças no banco

  • Adicionado model Disciplina com soft delete via campo ativa
  • Adicionado model MonitorDisciplina com enum StatusMonitoria (ATIVO/INATIVO)
  • Constraint @@unique([monitor_id, disciplina_id]) para evitar vínculo duplicado
  • Rodado prisma db push + prisma generate para sincronizar

Novas rotas

Método Rota Acesso
POST /api/disciplinas GESTOR
GET /api/disciplinas Autenticado
GET /api/disciplinas/:id Autenticado
PUT /api/disciplinas/:id GESTOR
DELETE /api/disciplinas/:id GESTOR
POST /api/monitoria/vincular PROFESSOR
DELETE /api/monitoria/desvincular/:disciplina_id/:monitor_id PROFESSOR
GET /api/monitoria/disciplina/:id Autenticado
GET /api/monitoria/monitor/:id Autenticado

Regras de negócio atendidas

  • RN-009 — só o professor orientador da disciplina pode vincular/desvincular monitores
  • RN-010 — monitor pode estar vinculado a mais de uma disciplina simultaneamente
  • RN-011 — desvínculo muda status para INATIVO, histórico preservado no banco

Testes realizados (Postman)

  • Criar disciplina com GESTOR → 201
  • Listar disciplinas → 200
  • Buscar por ID com monitores expandidos → 200
  • Atualizar descrição → 200
  • Tentativa de criar com perfil ALUNO → 403
  • Código de disciplina duplicado → 409
  • Professor vincula aluno como monitor → 201
  • Tentativa de vínculo duplicado → 409
  • Professor sem ownership da disciplina → 403
  • Desvincular monitor → 200, registro mantido como INATIVO

Closes #2 (closed)

Merge request reports

Loading