Collections

Dans la définition d'une collection, plusieurs options peuvent être configurées pour personnaliser son comportement et ses fonctionnalités :

  • slug: Obligatoire. C'est un identifiant unique pour la collection, généralement utilisé pour le référencement et l'URL.

  • type: Détermine le type de collection. Cela peut être "document" pour une collection de données structurées ou "media" pour une collection de fichiers multimédias.

  • access: Gère les contrôles d'accès à la collection. Cette option permet de définir qui peut lire, écrire ou modifier les éléments de la collection.

  • auth: Fonction d'authentification liée à une collection

  • hooks: Permet de spécifier une liste de fonctions exécutées à des étapes spécifiques du cycle de vie d'une collection, comme avant ou après la création d'un document.

  • fields: Contient la définition des champs de la collection. C'est ici que l'on spécifie la structure et le type de données que chaque document de la collection doit posséder.

  • indexes: Configuration d'indexations supplémentaires pour optimiser la recherche et l'accès aux données.

  • customApi: Permet de créer des API personnalisées pour étendre les fonctionnalités de la collection.

  • media: Configure les options spécifiques pour le téléchargement et la gestion des médias, s'il s'agit d'une collection de type média.

  • privateFields: Liste des champs qui doivent rester privés, masqués dans certaines conditions ou pour certains utilisateurs.

  • description: Fournit une description textuelle de la collection, utile pour la documentation ou l'administration.

  • init: Détermine la configuration initiale à appliquer avant l'exécution des hooks de création de la collection, permettant de préparer ou préconfigurer certains aspects de la collection.

Creation de model

Création d'un model de collection

import {define} from "@dnax/core"
export default define.Collection({
    slug:"users",
    fields:[]
})

Liste des options

{
  slug:"", //string- Nom de la collecton
  type:"document", // "document"|"media" - Type de model
  access:{}, // Controle d'accès
  hooks:{}, // Liste des hooks
  fields:[], // Champs de la collection
  indexes:[] // Configuration des indexations supplémentaires 
  customApi:{} ,// Creation d'api personnalisé
  media:{}, // Configuration de la fonctionnalité media/upload
  description:"",
  init:{} // Configuration avant les hooks de creation de collection
  api:{
    fields:{
        hidden:[] // List des champs privé à cacher dans l'API
        select:[] // List des champs à retourner uniquement
    }
  }
}

Last updated