Aller au contenu

Modèles

Cette section décrit les modèles de données utilisés dans l’API t404.xyz, qui incluent la gestion des clés API, des permissions par table, et plusieurs entités métiers liées à l’énergie, chauffage, isolation, fournisseurs, et aides sociales.


TablePermission

Modèle représentant les permissions d’accès par table avec flags pour les méthodes HTTP : GET, POST, PUT, PATCH, DELETE.

  • table_name : nom de la table
  • can_get, can_post, can_put, can_patch, can_delete : permissions booléennes

ApiKey

Modèle de clé API liée à un utilisateur, dotée de permissions et d’une date d’expiration.

  • key : clé alphanumérique unique, générée automatiquement
  • user : utilisateur associé (optionnel)
  • permissions : permissions tables associées
  • created, expires_at : dates de création et expiration
  • is_active : clé active ou non

Méthodes : - generate_key() - is_valid() : valide si active et non expirée


Item

Représente un item avec nom unique et description optionnelle.

  • name : nom unique
  • description : description texte

CostType

Seuil de coût identifié par un ID unique.

  • threshold_of_cost_id : identifiant du seuil de coût

Criteria

Critères d’évaluation avec nom et unité.

  • criteria_id : identifiant unique
  • criteria_name : nom du critère
  • unit : unité de mesure

ConstraintType

Types de contraintes avec type de valeur (int, float, string...).

  • constraint_type : nom du type
  • value_type : type de valeur attendue

Constraint

Contraintes associées aux critères et aides sociales.

  • constraint_id : identifiant unique
  • FK_criteria_id : lien vers un critère
  • FK_social_assistance_id : lien (nullable) vers aide sociale
  • FK_constraint_type : type de contrainte
  • Valeurs variables : float, string, bool, int

Energy, Heater

  • Energy : sources énergétiques (nom unique)
  • Heater : chauffages avec attributs coût, puissance, type énergie, seuil de coût, dimensions (largeur, hauteur, profondeur)

InsulationType, Insulation

  • Types et instances d'isolation avec résistance thermique.

Department, Social_assistance

  • Department : départements avec ID et nom
  • Social_assistance : aides sociales avec description, lien, éligibilité

Supplier, Departmental_cost

  • Supplier : fournisseurs avec énergie associée
  • Departmental_cost : coûts unitaires par fournisseur et département (clé unique composée)

Cette organisation des modèles permet de contrôler finement l’accès, gérer efficacement les ressources de chauffage et isolation, et documenter précisément les aides sociales et coûts associés.

Chaque modèle est doté d’une représentation en chaîne lisible grâce à la méthode __str__().