Pular para o conteúdo principal

Feature: Course Details

Introdução ao documento

Este documento descreve a feature de detalhe do curso, exposta na rota /{slug} e responsável por apresentar contexto, disponibilidade e CTA de inscrição.

Evidências:

Versionamento

Atualizar este documento quando mudarem:

  • os campos de customização do curso;
  • a regra de disponibilidade e CTA;
  • o desvio para manutenção ou notFound.

Evidências:

Referencial teórico

O mapeamento desta feature foi derivado da rota server-side /{slug}, do componente visual de detalhe e dos adapters de customização/status.

Evidências:

Visão geral

  • A rota recebe slug, busca status e customização do curso e decide entre notFound, manutenção ou renderização do detalhe (page.tsx#L20-L45).
  • A UI exibe título, descrição sanitizada, contagem de inscritos e CTA para /{slug}/inscricao (CourseDetailsLayout.component.tsx#L37-L63).

Atores

Pré-condições

Fluxo principal

  1. A rota lê slug e searchParams (page.tsx#L16-L21).
  2. Busca status e courseDetails (page.tsx#L23-L25).
  3. Renderiza CourseDetails com status e ameiFallback (page.tsx#L43-L46).
  4. O layout sanitiza a descrição, mostra metadados e monta o CTA de inscrição (CourseDetailsLayout.component.tsx#L22-L27, CourseDetailsLayout.component.tsx#L37-L63).

Fluxos alternativos

Regras de negócio

Estados possíveis

Endpoints envolvidos

Dados impactados

Pendências

  • Confirmar se a ausência de bloco de inscritos para subscribers = 0 é decisão intencional ou efeito colateral da checagem truthy.
  • Confirmar se o endpoint interno /v1/cursos/{slug} deveria substituir o adapter direto em algum fluxo futuro.

Evidências: