Criação da Estrutura da Tabela de Aulas no Banco de Dados
Descrição: Estruturar a tabela no banco de dados para armazenar as informações de cada aula.
Tarefas:
Criar a tabela aulas com os seguintes campos:
id (chave primária, auto-incrementada).
professor_id (chave estrangeira, referência à tabela de professores).
turma_id (chave estrangeira, referência à tabela de turmas).
data (data e hora da aula).
Configurar as relações com as tabelas de professores e turmas.
Garantir unicidade de aula com base em professor, turma e data.
Implementação da Rota de Cadastro de Aulas
Descrição: Criar um endpoint para cadastrar uma nova aula.
Tarefas:
Definir o endpoint, como POST /api/aulas/cadastro.
Receber e validar os dados enviados pelo frontend.
Persistir a aula no banco de dados caso os dados sejam válidos.
Validação de Dados no Backend
Descrição: Implementar validações para garantir a integridade dos dados antes de salvar no banco.
Tarefas:
Validar que todos os campos obrigatórios estão preenchidos: professor_id, turma_id e data.
Verificar se o professor_id e turma_id existem nas tabelas associadas.
Checar conflitos de horários: garantir que um professor não tenha duas aulas na mesma data/hora.
Implementação de Respostas e Tratamento de Erros no Backend
Descrição: Garantir que respostas apropriadas sejam enviadas ao frontend para cada cenário.
Tarefas:
Retornar 400 para dados inválidos ou ausentes com mensagens como: "Campos obrigatórios não preenchidos".
Retornar 404 caso o professor_id ou turma_id não sejam encontrados.
Retornar 409 caso exista conflito de horário para o professor.
Retornar 201 com os dados da aula criada em caso de sucesso.
Testes Unitários e de Integração
Descrição: Garantir a funcionalidade e integridade do cadastro de aulas.
Tarefas:
Testar o endpoint com dados válidos e inválidos.
Verificar a detecção de conflitos de horário.
Garantir a integridade das relações com professores e turmas.
Cadastro de Aulas - Backend
Criar a tabela aulas com os seguintes campos: id (chave primária, auto-incrementada). professor_id (chave estrangeira, referência à tabela de professores). turma_id (chave estrangeira, referência à tabela de turmas). data (data e hora da aula). Configurar as relações com as tabelas de professores e turmas. Garantir unicidade de aula com base em professor, turma e data.
Definir o endpoint, como POST /api/aulas/cadastro. Receber e validar os dados enviados pelo frontend. Persistir a aula no banco de dados caso os dados sejam válidos.
Validar que todos os campos obrigatórios estão preenchidos: professor_id, turma_id e data. Verificar se o professor_id e turma_id existem nas tabelas associadas. Checar conflitos de horários: garantir que um professor não tenha duas aulas na mesma data/hora.
Retornar 400 para dados inválidos ou ausentes com mensagens como: "Campos obrigatórios não preenchidos". Retornar 404 caso o professor_id ou turma_id não sejam encontrados. Retornar 409 caso exista conflito de horário para o professor. Retornar 201 com os dados da aula criada em caso de sucesso.
Testar o endpoint com dados válidos e inválidos. Verificar a detecção de conflitos de horário. Garantir a integridade das relações com professores e turmas.