#📝 Documentação do Arquivo payload-types.ts da Pasta src
Este documento descreve o conteúdo do arquivo payload-types.ts
, que contém as definições de tipos e interfaces utilizadas para a autenticação de usuários, armazenamento de dados de colaboradores, alunos, cursos, mídia e tags no sistema.
🔑 1. Config
export interface Config {
auth: {
colaboradores: ColaboradoreAuthOperations;
alunos: AlunoAuthOperations;
};
collections: {
colaboradores: Colaboradore;
alunos: Aluno;
media: Media;
cursos: Curso;
tags: Tag;
'payload-preferences': PayloadPreference;
'payload-migrations': PayloadMigration;
};
db: {
defaultIDType: string;
};
globals: {};
locale: null;
user:
| (Colaboradore & {
collection: 'colaboradores';
})
| (Aluno & {
collection: 'alunos';
});
}
- auth 🔐: Contém os dados de autenticação para colaboradores e alunos, especificando as operações necessárias (ver abaixo para detalhes de cada operação).
- collections 📂: Define as coleções do sistema, como colaboradores, alunos, cursos e outras entidades de dados.
- db 🗄️: Configurações relacionadas ao banco de dados, como o tipo de ID utilizado.
- globals 🌍: Objeto reservado para configurações globais, geralmente vazio inicialmente.
- locale 🌎: Representa a localização (idioma e região) no sistema. Aqui está como
null
, indicando que não há um valor definido. - user 👤: O usuário ativo, que pode ser um colaborador ou aluno, dependendo do contexto. O campo
collection
determina a qual coleção ele pertence.
🔑 2. ColaboradoreAuthOperations
export interface ColaboradoreAuthOperations {
forgotPassword: {
email: string;
};
login: {
email: string;
password: string;
};
registerFirstUser: {
email: string;
password: string;
};
unlock: {
email: string;
};
}
- forgotPassword 🔑: Operação para solicitar a recuperação de senha, necessitando apenas do email.
- login 🔑: Operação para realizar o login no sistema, requerendo email e senha.
- registerFirstUser 📝: Registro do primeiro usuário do sistema com email e senha.
- unlock 🔓: Para desbloquear uma conta de usuário com base no email.
🔑 3. AlunoAuthOperations
export interface AlunoAuthOperations {
forgotPassword: {
email: string;
};
login: {
email: string;
password: string;
};
registerFirstUser: {
email: string;
password: string;
};
unlock: {
email: string;
};
}
- As operações são idênticas às de ColaboradoreAuthOperations, mas voltadas para alunos.
🔑 4. Colaboradore
export interface Colaboradore {
id: string;
role: 'editor' | 'admin';
nomeCompleto: string;
foto: string | Media;
youtubeLink?: string | null;
instagramLink?: string | null;
siteLink?: string | null;
descricao?: string | null;
tags?: (string | Tag)[] | null;
numCursosCriados?: number | null;
updatedAt: string;
createdAt: string;
email: string;
resetPasswordToken?: string | null;
resetPasswordExpiration?: string | null;
salt?: string | null;
hash?: string | null;
loginAttempts?: number | null;
lockUntil?: string | null;
password?: string | null;
}
- id 🆔: Identificador único do colaborador no sistema.
- role 🔑: O papel do colaborador, podendo ser editor ou admin (determinando permissões de acesso).
- nomeCompleto 📝: O nome completo do colaborador.
- foto 📸: URL ou objeto Media contendo a foto do colaborador.
- youtubeLink, instagramLink, siteLink 🌐: Links para redes sociais ou sites do colaborador.
- descricao 🗣️: Descrição opcional sobre o colaborador.
- tags 🔖: Tags associadas ao colaborador (como interesses ou especializações).
- numCursosCriados 📚: Número de cursos criados pelo colaborador.
- updatedAt ⏰ e createdAt ⏳: Datas de atualização e criação do colaborador.
- email 📧: O email do colaborador.
- resetPasswordToken 🔑 e resetPasswordExpiration ⏳: Para recuperação de senha.
- salt e hash 🔐: Para armazenar a senha de forma segura.
- loginAttempts 🔒: O número de tentativas de login falhas.
- lockUntil ⏳: Data até que a conta estará bloqueada.
- password 🔑: A senha do colaborador (geralmente criptografada).
🔑 5. Media
export interface Media {
id: string;
alt: string;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
- id 🆔: Identificador único do arquivo de mídia.
- alt 🖼️: Texto alternativo que descreve o conteúdo da mídia.
- updatedAt ⏰ e createdAt ⏳: Datas de atualização e criação do arquivo de mídia.
- url 🌐: URL onde o arquivo de mídia está hospedado.
- thumbnailURL 🖼️: URL da miniatura da mídia (se disponível).
- filename 📝: Nome do arquivo de mídia.
- mimeType 📁: Tipo MIME (como image/jpeg ou video/mp4).
- filesize 📏: O tamanho do arquivo em bytes.
- width 🖼️ e height 📏: Dimensões do arquivo de mídia (se aplicável).
- focalX e focalY 🎯: Coordenadas do foco da imagem (se aplicável).
🔑 6. Tag
export interface Tag {
id: string;
nome: string;
updatedAt: string;
createdAt: string;
}
- id 🆔: Identificador único da tag.
- nome 🏷️: Nome ou rótulo da tag.
- updatedAt ⏰ e createdAt ⏳: Datas de atualização e criação da tag.
🔑 7. Aluno
export interface Aluno {
id: string;
cpf: string;
nomeCompleto: string;
meusCursos?:
| {
curso?: (string | null) | Curso;
progresso?: number | null;
id?: string | null;
}[]
| null;
xp?: number | null;
diasConsecutivos?: {
ultimoAcesso?: string | null;
contagem?: number | null;
};
certificados?:
| {
certificado?: string | null;
id?: string | null;
}[]
| null;
UltimoLogin?: string | null;
updatedAt: string;
createdAt: string;
email: string;
resetPasswordToken?: string | null;
resetPasswordExpiration?: string | null;
salt?: string | null;
hash?: string | null;
loginAttempts?: number | null;
lockUntil?: string | null;
password?: string | null;
}
- id 🆔: Identificador único do aluno.
- cpf 📜: CPF do aluno, usado para identificação.
- nomeCompleto 📝: O nome completo do aluno.
- meusCursos 📚: Cursos nos quais o aluno está matriculado, incluindo seu progresso.
- xp 🎮: Pontos de experiência do aluno.
- diasConsecutivos 📅: Dias consecutivos de acesso ao sistema.
- certificados 🏅: Certificados conquistados pelo aluno.
- UltimoLogin ⏳: Data do último login.
- updatedAt ⏰ e createdAt ⏳: Datas de atualização e criação do aluno.
- email 📧: O email do aluno.
- resetPasswordToken 🔑 e resetPasswordExpiration ⏳: Para recuperação de senha.
- salt e hash 🔐: Para armazenar a senha de forma segura.
- **loginAttempts
** 🔒: O número de tentativas de login falhas.
- lockUntil ⏳: Data até que a conta estará bloqueada.
- password 🔑: A senha do aluno (geralmente criptografada).