Desenvolvedores
src_
payload-types.ts

#📝 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).