📚 Módulo Modulo.ts
O arquivo Modulo.ts
, localizado na pasta cursos
em collections
, é responsável pelo módulo Modulos. Esse módulo é utilizado para organizar as aulas dentro de um curso, contendo campos essenciais como nome, descrição e aulas associadas.
🛠️ Configuração do Módulo
import { Field } from 'payload'
import { aulas } from './Aula'
import {
lexicalEditor,
FixedToolbarFeature,
InlineToolbarFeature,
} from '@payloadcms/richtext-lexical'
export const modulos: Field = {
name: 'modulo',
type: 'group',
fields: [
{
name: 'nomeModulo',
label: 'Nome',
type: 'text',
unique: true,
required: true,
maxLength: 100,
},
{
name: 'descricao',
label: 'Descrição',
type: 'richText',
editor: lexicalEditor({
features: ({ defaultFeatures }) => {
return [...defaultFeatures, FixedToolbarFeature(), InlineToolbarFeature()]
},
}),
required: true,
},
{
name: 'aulas',
label: 'Aulas',
type: 'array',
fields: [aulas],
},
],
}
🔍 Atributos do Módulo
Cada módulo contém atributos essenciais para sua estruturação:
- Name: Identificador interno do módulo.
- Type: Define o tipo de dado armazenado.
- Fields: Conjunto de campos pertencentes ao módulo.
📌 Campos do Módulo
1️⃣ Nome do Módulo
- 🔹 Name:
nomeModulo
- 🏷️ Label:
Nome
- 📌 Type:
text
- ✅ Unique:
true
- ⚠️ Required:
true
- ✍️ Max Length:
100
- 📖 Descrição: Nome único e obrigatório do módulo, limitado a 100 caracteres.
2️⃣ Descrição
- 🔹 Name:
descricao
- 🏷️ Label:
Descrição
- 📌 Type:
richText
- ⚠️ Required:
true
- 🖋️ Editor: Lexical com suporte a:
- 🛠️ FixedToolbarFeature: Barra de ferramentas fixa.
- ⚡ InlineToolbarFeature: Barra de ferramentas inline.
- 📖 Descrição: Texto formatável sobre o módulo.
3️⃣ Aulas
- 🔹 Name:
aulas
- 🏷️ Label:
Aulas
- 📌 Type:
array
- 📦 Fields:
aulas
(Importa a estrutura do arquivoAula.ts
) - 📖 Descrição: Lista de aulas vinculadas ao módulo.
✅ Considerações Finais
O módulo modulos
facilita a organização das aulas dentro de um curso, garantindo que cada módulo contenha múltiplas aulas e informações bem estruturadas.
🔄 Exemplos de Uso
- ➕ Adicionar Módulo: Criar um módulo novo com nome, descrição e aulas.
- 📝 Editar Módulo: Atualizar informações de um módulo existente.
- 👀 Visualizar Módulo: Exibir detalhes do módulo, incluindo as aulas associadas.
🔎 Código Completo
import { Field } from 'payload'
import { aulas } from './Aula'
import {
lexicalEditor,
FixedToolbarFeature,
InlineToolbarFeature,
} from '@payloadcms/richtext-lexical'
export const modulos: Field = {
name: 'modulo',
type: 'group',
fields: [
{
name: 'nomeModulo',
label: 'Nome',
type: 'text',
unique: true,
required: true,
maxLength: 100,
},
{
name: 'descricao',
label: 'Descrição',
type: 'richText',
editor: lexicalEditor({
features: ({ defaultFeatures }) => {
return [...defaultFeatures, FixedToolbarFeature(), InlineToolbarFeature()]
},
}),
required: true,
},
{
name: 'aulas',
label: 'Aulas',
type: 'array',
fields: [aulas],
},
],
}