Files
siop2/apps/mobile/src/api/schema.d.ts
pr-daaif 5c8d5aac92 feat(r4.1): socle mobile Expo — connexion démo, Ma journée, lecture hors-ligne
apps/mobile (Expo SDK 57, TS strict, workspace pnpm) : connexion
e-mail/mdp + sélecteur démo ADR-002 (uniquement si l'API l'expose),
tabbar de la maquette validée (onglets futurs marqués R4.2/R4.3),
« Ma journée » triée priorité puis échéance (fonction pure testée),
urgence en tête, pastille de synchro.

D1 en actes (lecture) : cache TanStack persisté dans AsyncStorage
(7 jours), NetInfo → onlineManager + bandeau hors-ligne horodaté ;
jeton en SecureStore ; tokens light/dark répliqués et testés ; client
typé régénéré depuis docs/openapi.json (règle d'or).

API : CORS_ORIGINS opt-in (vide par défaut) — Expo web/debug seulement,
le web de prod reste derrière le proxy, les apps natives n'ont pas
d'Origin.

Vérifié 10/10 en Expo web piloté (connexion démo Ahmed → Ma journée
scopée → hors-ligne servie du cache → retour) ; 6 tests jest-expo ;
lint racine étendu (react-hooks) ; job CI mobile, deploy en dépend.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 03:12:34 +01:00

4113 lines
115 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
export interface paths {
"/auth/login": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Connexion par e-mail et mot de passe */
post: operations["login"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/auth/demo-accounts": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/**
* Comptes de démonstration (ADR-002 — jamais de secret)
* @description ADR-002 : cette route est absente (404) quand DEMO_MODE nest pas actif.
*/
get: operations["listDemoAccounts"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/auth/demo-login": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/**
* Connexion 1 clic sur un compte de démonstration (ADR-002)
* @description ADR-002 : cette route est absente (404) quand DEMO_MODE nest pas actif.
*/
post: operations["demoLogin"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/users/me": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Profil courant + matrice de permissions du rôle */
get: operations["getMe"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/auth/activate": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Activer un compte invité (lien 7 jours) — connecte directement */
post: operations["activateAccount"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/categories": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Référentiels administrables (catégories déquipement, types dorganes) */
get: operations["listCategories"];
put?: never;
/** Ajouter une catégorie */
post: operations["createCategory"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/categories/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Renommer ou (dés)activer — jamais de suppression si utilisée */
patch: operations["updateCategory"];
trace?: never;
};
"/locations": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Sites et zones (liste plate, le client construit larbre) */
get: operations["listLocations"];
put?: never;
/** Créer un site (sans parent) ou une zone (profondeur max 2) */
post: operations["createLocation"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/locations/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Modifier un emplacement */
patch: operations["updateLocation"];
trace?: never;
};
"/assets": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Inventaire des appareils */
get: operations["listAssets"];
put?: never;
/** Créer un appareil (avec ses organes) — le QR découle de la référence */
post: operations["createAsset"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/assets/options": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Options dappareils pour le signalement (tout rôle authentifié) */
get: operations["listAssetOptions"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/assets/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Fiche appareil (identité + organes) */
get: operations["getAsset"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Modifier un appareil (dont son statut déquipement) */
patch: operations["updateAsset"];
trace?: never;
};
"/assets/{id}/components": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Ajouter un organe (jamais demplacement propre) */
post: operations["addAssetComponent"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/assets/{id}/components/{componentId}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Retirer un organe */
delete: operations["removeAssetComponent"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/teams": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Équipes et leurs membres */
get: operations["listTeams"];
put?: never;
/** Créer une équipe */
post: operations["createTeam"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/teams/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Modifier une équipe (nom, description, membres) */
patch: operations["updateTeam"];
trace?: never;
};
"/users": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Personnes (statut dérivé : actif / invité / désactivé) */
get: operations["listUsers"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/roles": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Les 7 rôles (pour linvitation) */
get: operations["listRoles"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/users/invitations": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Inviter — crée le compte inactif et émet le lien dactivation (7 j) */
post: operations["inviteUser"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/users/{id}/invitation": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Régénérer le lien dactivation dun compte non activé */
post: operations["resendInvitation"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/users/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Modifier une personne (rôle, équipes, activation du compte) */
patch: operations["updateUser"];
trace?: never;
};
"/documents": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Bibliothèque (filtrable par appareil ou OT) */
get: operations["listDocuments"];
put?: never;
/** Téléverser (PDF/JPG/PNG, 20 Mo max, rattachement appareil OU OT requis) */
post: operations["uploadDocument"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/documents/{id}/download": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Télécharger — streamé par lAPI (MinIO jamais exposé) */
get: operations["downloadDocument"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/documents/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
/** Supprimer (permission dédition sur la cible) */
delete: operations["deleteDocument"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/analytics/summary": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Le tableau de la direction : coûts, pannes par organe (bilans), préventif, top équipements */
get: operations["getAnalyticsSummary"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/search": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Recherche globale (OT, ascenseurs, sites) — chaque famille filtrée par la matrice */
get: operations["globalSearch"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/partners": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Tiers (fournisseurs, syndics) — permission PURCHASE_ORDERS */
get: operations["listPartners"];
put?: never;
/** Créer un tiers */
post: operations["createPartner"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/partners/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Modifier / (dés)activer un tiers */
patch: operations["updatePartner"];
trace?: never;
};
"/parts": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Stock de pièces — quantités DÉRIVÉES des mouvements */
get: operations["listParts"];
put?: never;
/** Créer une pièce (référence P-#### générée) */
post: operations["createPart"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/parts/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Fiche pièce : les mouvements SONT le stock */
get: operations["getPart"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Modifier une pièce (désignation, seuil, fournisseur…) */
patch: operations["updatePart"];
trace?: never;
};
"/parts/{id}/movements": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Entrée manuelle (+) ou ajustement (± motif REQUIS) — jamais de saisie de stock */
post: operations["addStockMovement"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/purchase-orders": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Bons de commande */
get: operations["listPurchaseOrders"];
put?: never;
/** Créer un BC (brouillon) */
post: operations["createPurchaseOrder"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/purchase-orders/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Fiche BC (lignes, total) */
get: operations["getPurchaseOrder"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/purchase-orders/{id}/transition": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Envoyer / réceptionner (→ entrées de stock, PU figés) / annuler */
post: operations["transitionPurchaseOrder"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/work-orders/{id}/consume-part": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Consommer une pièce sur lOT — stock décrémenté, PRIX FIGÉ */
post: operations["consumePart"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/work-orders/{id}/labor": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Saisir de la main-dœuvre — TAUX FIGÉ à la saisie */
post: operations["addLaborTime"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/portal/assets/{reference}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Résoudre le QR scanné (référence → appareil, préremplissage) */
get: operations["getPortalAsset"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/portal/requests": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Signaler sans compte — renvoie le jeton de suivi (à garder sur le téléphone) */
post: operations["createPortalRequest"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/portal/requests/{reference}/{token}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Suivi sans jargon (Reçu → Intervention → Résolu) — jeton requis */
get: operations["getPortalRequestStatus"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/preventive/templates": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Gabarits de tâches du préventif (périodicité en mois) */
get: operations["listTaskTemplates"];
put?: never;
/** Ajouter un gabarit */
post: operations["createTaskTemplate"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/preventive/templates/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Modifier / (dés)activer un gabarit — jamais de suppression si utilisé */
patch: operations["updateTaskTemplate"];
trace?: never;
};
"/preventive/generate": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Générer la grille du mois — IDEMPOTENT (regénérer ne double rien) */
post: operations["generatePreventive"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/preventive/status": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** État du mois courant (générées, terminées, en retard, premiers contrôles) */
get: operations["getPreventiveStatus"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/assets/{id}/meters": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Compteurs de lappareil (relevés récents dabord) */
get: operations["getAssetMeters"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/assets/{id}/meter-readings": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Enregistrer un relevé — strictement croissant */
post: operations["addMeterReading"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/work-orders": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Ordres de travail (sans « voir autre » : seulement les siens) */
get: operations["listWorkOrders"];
put?: never;
/** Créer un OT (statut Ouvert) */
post: operations["createWorkOrder"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/work-orders/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Fiche OT (activité, checklist, bilan, transitions autorisées, blocages de clôture) */
get: operations["getWorkOrder"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/work-orders/{id}/transition": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Changer létat (machine à états stricte ; DONE exige bilan + checklist) */
post: operations["transitionWorkOrder"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/work-orders/{id}/comments": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Commenter (activité chronologique) */
post: operations["commentWorkOrder"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/work-orders/{id}/assignees": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/** Assigner (remplace la liste) */
put: operations["setWorkOrderAssignees"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/work-orders/{id}/report": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/** Renseigner le bilan codé (null efface un champ) */
put: operations["upsertWorkOrderReport"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/work-orders/{id}/checklist/{itemId}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Régler une tâche de la grille (Fait / N-A / à faire) */
patch: operations["patchChecklistItem"];
trace?: never;
};
"/requests": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Demandes (sans « voir autre » : seulement les siennes) */
get: operations["listRequests"];
put?: never;
/** Signaler (interne — le portail public QR arrive en R2.4) */
post: operations["createRequest"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/requests/{id}/approve": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Approuver → crée lOT lié (1-1, jamais de doublon) */
post: operations["approveRequest"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/requests/{id}/reject": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
/** Rejeter — motif obligatoire, lisible côté demandeur */
post: operations["rejectRequest"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/reference-values": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Référentiels du bilan codé (6 champs) */
get: operations["listReferenceValues"];
put?: never;
/** Ajouter une valeur de référentiel */
post: operations["createReferenceValue"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/reference-values/{id}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
/** Renommer ou (dés)activer — jamais de suppression si utilisée */
patch: operations["updateReferenceValue"];
trace?: never;
};
"/health": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** État des dépendances (base, Redis, stockage) */
get: operations["getHealth"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
}
export type webhooks = Record<string, never>;
export interface components {
schemas: {
AuthResponse: {
accessToken: string;
user: {
/** Format: uuid */
id: string;
/** Format: email */
email: string;
displayName: string;
role: {
/** Format: uuid */
id: string;
/** @enum {string} */
name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
};
isDemo: boolean;
};
};
LoginRequest: {
/** Format: email */
email: string;
password: string;
};
DemoAccountsResponse: {
accounts: {
/** Format: uuid */
id: string;
displayName: string;
/** @enum {string} */
roleName: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
initials: string;
}[];
};
DemoLoginRequest: {
/** Format: uuid */
userId: string;
};
MeResponse: {
/** Format: uuid */
id: string;
/** Format: email */
email: string;
displayName: string;
role: {
/** Format: uuid */
id: string;
/** @enum {string} */
name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
};
isDemo: boolean;
permissions: {
/** @enum {string} */
objectCategory: "WORK_ORDERS" | "REQUESTS" | "ASSETS" | "LOCATIONS" | "METERS" | "PARTS" | "PURCHASE_ORDERS" | "PEOPLE_TEAMS" | "ANALYTICS" | "SETTINGS";
canView: boolean;
canViewOther: boolean;
canCreate: boolean;
canEdit: boolean;
canDelete: boolean;
}[];
};
ActivateRequest: {
token: string;
password: string;
};
CategoriesResponse: {
categories: {
/** Format: uuid */
id: string;
/** @enum {string} */
kind: "EQUIPMENT" | "COMPONENT_TYPE";
name: string;
isActive: boolean;
usageCount: number;
}[];
};
Category: {
/** Format: uuid */
id: string;
/** @enum {string} */
kind: "EQUIPMENT" | "COMPONENT_TYPE";
name: string;
isActive: boolean;
usageCount: number;
};
CategoryCreate: {
/** @enum {string} */
kind: "EQUIPMENT" | "COMPONENT_TYPE";
name: string;
};
CategoryUpdate: {
name?: string;
isActive?: boolean;
};
LocationsResponse: {
locations: {
/** Format: uuid */
id: string;
name: string;
parentId: string | null;
address: string | null;
city: string | null;
guardianName: string | null;
guardianPhone: string | null;
latitude: number | null;
longitude: number | null;
partnerId: string | null;
partnerName: string | null;
assetCount: number;
}[];
};
Location: {
/** Format: uuid */
id: string;
name: string;
parentId: string | null;
address: string | null;
city: string | null;
guardianName: string | null;
guardianPhone: string | null;
latitude: number | null;
longitude: number | null;
partnerId: string | null;
partnerName: string | null;
assetCount: number;
};
LocationCreate: {
name: string;
/** Format: uuid */
parentId?: string;
address?: string;
city?: string;
guardianName?: string;
guardianPhone?: string;
latitude?: number;
longitude?: number;
partnerId?: string | null;
};
LocationUpdate: {
name?: string;
/** Format: uuid */
parentId?: string;
address?: string;
city?: string;
guardianName?: string;
guardianPhone?: string;
latitude?: number;
longitude?: number;
partnerId?: string | null;
};
AssetsResponse: {
assets: {
/** Format: uuid */
id: string;
reference: string;
brand: string;
model: string | null;
serialNumber: string | null;
commissionedAt: string | null;
loadKg: number | null;
floors: number | null;
/** @enum {string} */
status: "IN_SERVICE" | "OUT_OF_SERVICE" | "UNDER_MAINTENANCE";
/** Format: uuid */
categoryId: string;
categoryName: string;
/** Format: uuid */
locationId: string;
locationName: string;
siteName: string;
componentCount: number;
}[];
};
AssetOptionsResponse: {
options: {
/** Format: uuid */
id: string;
reference: string;
siteName: string;
}[];
};
AssetDetail: {
/** Format: uuid */
id: string;
reference: string;
brand: string;
model: string | null;
serialNumber: string | null;
commissionedAt: string | null;
loadKg: number | null;
floors: number | null;
/** @enum {string} */
status: "IN_SERVICE" | "OUT_OF_SERVICE" | "UNDER_MAINTENANCE";
/** Format: uuid */
categoryId: string;
categoryName: string;
/** Format: uuid */
locationId: string;
locationName: string;
siteName: string;
componentCount: number;
components: {
/** Format: uuid */
id: string;
/** Format: uuid */
typeId: string;
typeName: string;
designation: string | null;
}[];
};
AssetCreate: {
reference: string;
brand: string;
model?: string;
serialNumber?: string;
/** Format: date-time */
commissionedAt?: string;
loadKg?: number;
floors?: number;
/** Format: uuid */
categoryId: string;
/** Format: uuid */
locationId: string;
components?: {
/** Format: uuid */
typeId: string;
designation?: string;
}[];
};
AssetUpdate: {
reference?: string;
brand?: string;
model?: string;
serialNumber?: string;
/** Format: date-time */
commissionedAt?: string;
loadKg?: number;
floors?: number;
/** Format: uuid */
categoryId?: string;
/** Format: uuid */
locationId?: string;
/** @enum {string} */
status?: "IN_SERVICE" | "OUT_OF_SERVICE" | "UNDER_MAINTENANCE";
};
AssetComponent: {
/** Format: uuid */
id: string;
/** Format: uuid */
typeId: string;
typeName: string;
designation: string | null;
};
AssetComponentCreate: {
/** Format: uuid */
typeId: string;
designation?: string;
};
TeamsResponse: {
teams: {
/** Format: uuid */
id: string;
name: string;
description: string | null;
members: {
/** Format: uuid */
id: string;
displayName: string;
roleName: string;
initials: string;
}[];
}[];
};
Team: {
/** Format: uuid */
id: string;
name: string;
description: string | null;
members: {
/** Format: uuid */
id: string;
displayName: string;
roleName: string;
initials: string;
}[];
};
TeamCreate: {
name: string;
description?: string;
memberIds?: string[];
};
TeamUpdate: {
name?: string;
description?: string;
memberIds?: string[];
};
UsersResponse: {
users: {
/** Format: uuid */
id: string;
/** Format: email */
email: string;
displayName: string;
phone: string | null;
role: {
/** Format: uuid */
id: string;
/** @enum {string} */
name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
};
teams: {
/** Format: uuid */
id: string;
name: string;
}[];
/** @enum {string} */
status: "active" | "invited" | "disabled";
isDemo: boolean;
hourlyRate: number | null;
}[];
};
RolesResponse: {
roles: {
/** Format: uuid */
id: string;
/** @enum {string} */
name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
}[];
};
InvitationResponse: {
/** Format: uuid */
userId: string;
activationToken: string;
/** Format: date-time */
expiresAt: string;
};
InvitationCreate: {
/** Format: email */
email: string;
displayName: string;
/** Format: uuid */
roleId: string;
teamIds?: string[];
phone?: string;
};
UserAdmin: {
/** Format: uuid */
id: string;
/** Format: email */
email: string;
displayName: string;
phone: string | null;
role: {
/** Format: uuid */
id: string;
/** @enum {string} */
name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
};
teams: {
/** Format: uuid */
id: string;
name: string;
}[];
/** @enum {string} */
status: "active" | "invited" | "disabled";
isDemo: boolean;
hourlyRate: number | null;
};
UserUpdate: {
displayName?: string;
phone?: string;
/** Format: uuid */
roleId?: string;
teamIds?: string[];
isActive?: boolean;
hourlyRate?: number | null;
};
DocumentsResponse: {
documents: {
/** Format: uuid */
id: string;
/** @enum {string} */
kind: "NOTICE" | "CERTIFICATE" | "PHOTO" | "OTHER";
fileName: string;
size: number;
contentType: string;
assetReference: string | null;
workOrderReference: string | null;
uploadedByName: string | null;
/** Format: date-time */
createdAt: string;
}[];
};
Document: {
/** Format: uuid */
id: string;
/** @enum {string} */
kind: "NOTICE" | "CERTIFICATE" | "PHOTO" | "OTHER";
fileName: string;
size: number;
contentType: string;
assetReference: string | null;
workOrderReference: string | null;
uploadedByName: string | null;
/** Format: date-time */
createdAt: string;
};
AnalyticsSummary: {
months: number;
monthCost: number;
previousMonthCost: number;
closed: {
total: number;
preventive: number;
};
preventiveRate: number | null;
avgResolutionDays: number | null;
failuresByComponent: {
label: string;
count: number;
}[];
costsByMonth: {
month: string;
total: number;
}[];
topAssets: {
reference: string;
siteName: string;
correctives: number;
partsCost: number;
laborCost: number;
total: number;
}[];
};
SearchResponse: {
workOrders: {
/** Format: uuid */
id: string;
reference: string;
title: string;
/** @enum {string} */
status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
}[];
assets: {
/** Format: uuid */
id: string;
reference: string;
brand: string;
model: string | null;
siteName: string;
}[];
sites: {
/** Format: uuid */
id: string;
name: string;
city: string | null;
}[];
};
PartnersResponse: {
partners: {
/** Format: uuid */
id: string;
name: string;
/** @enum {string} */
kind: "SUPPLIER" | "CLIENT";
contactName: string | null;
phone: string | null;
email: string | null;
city: string | null;
isActive: boolean;
openOrders: number;
siteNames: string[];
}[];
};
Partner: {
/** Format: uuid */
id: string;
name: string;
/** @enum {string} */
kind: "SUPPLIER" | "CLIENT";
contactName: string | null;
phone: string | null;
email: string | null;
city: string | null;
isActive: boolean;
openOrders: number;
siteNames: string[];
};
PartnerCreate: {
name: string;
/** @enum {string} */
kind: "SUPPLIER" | "CLIENT";
contactName?: string;
phone?: string;
/** Format: email */
email?: string;
city?: string;
};
PartnerUpdate: {
name?: string;
/** @enum {string} */
kind?: "SUPPLIER" | "CLIENT";
contactName?: string;
phone?: string;
/** Format: email */
email?: string;
city?: string;
isActive?: boolean;
};
PartsResponse: {
parts: {
/** Format: uuid */
id: string;
reference: string;
designation: string;
threshold: number;
lastUnitPrice: number | null;
compatible: string | null;
supplierId: string | null;
supplierName: string | null;
isActive: boolean;
stock: number;
belowThreshold: boolean;
}[];
};
PartDetail: {
/** Format: uuid */
id: string;
reference: string;
designation: string;
threshold: number;
lastUnitPrice: number | null;
compatible: string | null;
supplierId: string | null;
supplierName: string | null;
isActive: boolean;
stock: number;
belowThreshold: boolean;
movements: {
/** Format: uuid */
id: string;
/** @enum {string} */
kind: "RECEIPT" | "ENTRY" | "CONSUMPTION" | "ADJUSTMENT";
quantity: number;
unitPrice: number | null;
reason: string | null;
workOrderReference: string | null;
purchaseOrderReference: string | null;
byName: string | null;
/** Format: date-time */
createdAt: string;
}[];
};
PartCreate: {
designation: string;
threshold?: number;
/** Format: uuid */
supplierId?: string;
compatible?: string;
initialPrice?: number;
};
PartUpdate: {
designation?: string;
threshold?: number;
supplierId?: string | null;
compatible?: string | null;
isActive?: boolean;
};
StockMovementCreate: {
/** @enum {string} */
kind: "ENTRY" | "ADJUSTMENT";
quantity: number;
reason?: string;
};
PurchaseOrdersResponse: {
purchaseOrders: {
/** Format: uuid */
id: string;
reference: string;
/** @enum {string} */
status: "DRAFT" | "SENT" | "RECEIVED" | "CANCELLED";
/** Format: uuid */
supplierId: string;
supplierName: string;
lines: {
/** Format: uuid */
id: string;
/** Format: uuid */
partId: string;
partReference: string;
designation: string;
quantity: number;
unitPrice: number;
}[];
total: number;
sentAt: string | null;
receivedAt: string | null;
/** Format: date-time */
createdAt: string;
}[];
};
PurchaseOrder: {
/** Format: uuid */
id: string;
reference: string;
/** @enum {string} */
status: "DRAFT" | "SENT" | "RECEIVED" | "CANCELLED";
/** Format: uuid */
supplierId: string;
supplierName: string;
lines: {
/** Format: uuid */
id: string;
/** Format: uuid */
partId: string;
partReference: string;
designation: string;
quantity: number;
unitPrice: number;
}[];
total: number;
sentAt: string | null;
receivedAt: string | null;
/** Format: date-time */
createdAt: string;
};
PurchaseOrderCreate: {
/** Format: uuid */
supplierId: string;
lines: {
/** Format: uuid */
partId: string;
quantity: number;
unitPrice: number;
}[];
};
PurchaseOrderTransition: {
/** @enum {string} */
to: "SENT" | "RECEIVED" | "CANCELLED";
};
WorkOrderDetail: {
/** Format: uuid */
id: string;
reference: string;
title: string;
/** @enum {string} */
type: "CORRECTIVE" | "PREVENTIVE" | "WORKS";
/** @enum {string} */
status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
/** @enum {string} */
priority: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "PERSON_TRAPPED";
/** Format: uuid */
assetId: string;
assetReference: string;
siteName: string;
dueDate: string | null;
assignees: {
/** Format: uuid */
id: string;
displayName: string;
initials: string;
}[];
/** Format: date-time */
createdAt: string;
description: string | null;
locationName: string;
startedAt: string | null;
completedAt: string | null;
cancelledAt: string | null;
createdBy: {
/** Format: uuid */
id: string;
displayName: string;
initials: string;
} | null;
request: {
/** Format: uuid */
id: string;
reference: string;
requesterLabel: string;
} | null;
events: {
/** Format: uuid */
id: string;
kind: string;
message: string | null;
by: {
/** Format: uuid */
id: string;
displayName: string;
initials: string;
} | null;
/** Format: date-time */
createdAt: string;
}[];
checklist: {
/** Format: uuid */
id: string;
label: string;
/** @enum {string} */
state: "PENDING" | "DONE" | "NA";
doneBy: {
/** Format: uuid */
id: string;
displayName: string;
initials: string;
} | null;
doneAt: string | null;
}[];
report: {
note: string | null;
doorState: {
/** Format: uuid */
id: string;
label: string;
} | null;
cabinPosition: {
/** Format: uuid */
id: string;
label: string;
} | null;
anomaly: {
/** Format: uuid */
id: string;
label: string;
} | null;
externalCause: {
/** Format: uuid */
id: string;
label: string;
} | null;
actionTaken: {
/** Format: uuid */
id: string;
label: string;
} | null;
componentConcerned: {
/** Format: uuid */
id: string;
label: string;
} | null;
} | null;
costs: {
parts: {
/** Format: uuid */
id: string;
designation: string;
quantity: number;
unitPrice: number;
total: number;
}[];
labor: {
/** Format: uuid */
id: string;
displayName: string;
minutes: number;
hourlyRate: number;
total: number;
note: string | null;
}[];
total: number;
};
allowedTransitions: ("OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED")[];
closureBlockers: string[];
};
ConsumePart: {
/** Format: uuid */
partId: string;
quantity: number;
};
LaborTimeCreate: {
minutes: number;
/** Format: uuid */
userId?: string;
note?: string;
};
PortalAsset: {
reference: string;
siteName: string;
locationName: string;
};
PortalRequestCreated: {
reference: string;
description: string;
isPersonTrapped: boolean;
/** @enum {string} */
status: "RECEIVED" | "APPROVED" | "REJECTED";
/** @enum {string} */
step: "RECEIVED" | "IN_PROGRESS" | "RESOLVED";
rejectionReason: string | null;
/** Format: date-time */
createdAt: string;
publicToken: string;
};
PortalRequestCreate: {
assetReference: string;
description: string;
isPersonTrapped?: boolean;
requesterName?: string;
};
PortalRequestStatus: {
reference: string;
description: string;
isPersonTrapped: boolean;
/** @enum {string} */
status: "RECEIVED" | "APPROVED" | "REJECTED";
/** @enum {string} */
step: "RECEIVED" | "IN_PROGRESS" | "RESOLVED";
rejectionReason: string | null;
/** Format: date-time */
createdAt: string;
};
TaskTemplatesResponse: {
templates: {
/** Format: uuid */
id: string;
label: string;
periodMonths: number;
isRegulatory: boolean;
isActive: boolean;
componentTypeId: string | null;
componentTypeName: string | null;
}[];
};
TaskTemplate: {
/** Format: uuid */
id: string;
label: string;
periodMonths: number;
isRegulatory: boolean;
isActive: boolean;
componentTypeId: string | null;
componentTypeName: string | null;
};
TaskTemplateCreate: {
label: string;
periodMonths: number;
/** Format: uuid */
componentTypeId?: string;
isRegulatory?: boolean;
};
TaskTemplateUpdate: {
label?: string;
periodMonths?: number;
componentTypeId?: string | null;
isRegulatory?: boolean;
isActive?: boolean;
};
PreventiveGenerationResult: {
month: string;
created: number;
skipped: number;
firstControls: number;
references: string[];
};
PreventiveGenerate: {
month?: string;
};
PreventiveStatus: {
month: string;
assetsUnderContract: number;
generated: number;
done: number;
late: number;
firstControls: number;
};
MetersResponse: {
meters: {
/** @enum {string} */
kind: "RUNNING_HOURS" | "STARTS";
readings: {
/** Format: uuid */
id: string;
value: number;
readBy: {
/** Format: uuid */
id: string;
displayName: string;
} | null;
/** Format: date-time */
createdAt: string;
}[];
}[];
};
MeterReadingCreate: {
/** @enum {string} */
kind: "RUNNING_HOURS" | "STARTS";
value: number;
};
WorkOrdersResponse: {
workOrders: {
/** Format: uuid */
id: string;
reference: string;
title: string;
/** @enum {string} */
type: "CORRECTIVE" | "PREVENTIVE" | "WORKS";
/** @enum {string} */
status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
/** @enum {string} */
priority: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "PERSON_TRAPPED";
/** Format: uuid */
assetId: string;
assetReference: string;
siteName: string;
dueDate: string | null;
assignees: {
/** Format: uuid */
id: string;
displayName: string;
initials: string;
}[];
/** Format: date-time */
createdAt: string;
}[];
};
WorkOrderCreate: {
title: string;
description?: string;
/** @enum {string} */
type: "CORRECTIVE" | "PREVENTIVE" | "WORKS";
/** @enum {string} */
priority?: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "PERSON_TRAPPED";
/** Format: uuid */
assetId: string;
/** Format: date-time */
dueDate?: string;
assigneeIds?: string[];
};
TransitionRequest: {
/** @enum {string} */
to: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
comment?: string;
};
CommentCreate: {
message: string;
};
AssigneesUpdate: {
assigneeIds: string[];
};
ReportUpsert: {
note?: string | null;
doorStateId?: string | null;
cabinPositionId?: string | null;
anomalyId?: string | null;
externalCauseId?: string | null;
actionTakenId?: string | null;
componentConcernedId?: string | null;
};
ChecklistItem: {
/** Format: uuid */
id: string;
label: string;
/** @enum {string} */
state: "PENDING" | "DONE" | "NA";
doneBy: {
/** Format: uuid */
id: string;
displayName: string;
initials: string;
} | null;
doneAt: string | null;
};
ChecklistPatch: {
/** @enum {string} */
state: "PENDING" | "DONE" | "NA";
};
RequestsResponse: {
requests: {
/** Format: uuid */
id: string;
reference: string;
description: string;
isPersonTrapped: boolean;
/** @enum {string} */
status: "RECEIVED" | "APPROVED" | "REJECTED";
rejectionReason: string | null;
/** Format: uuid */
assetId: string;
assetReference: string;
siteName: string;
requesterLabel: string;
workOrder: {
/** Format: uuid */
id: string;
reference: string;
/** @enum {string} */
status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
} | null;
/** Format: date-time */
createdAt: string;
}[];
};
RequestSummary: {
/** Format: uuid */
id: string;
reference: string;
description: string;
isPersonTrapped: boolean;
/** @enum {string} */
status: "RECEIVED" | "APPROVED" | "REJECTED";
rejectionReason: string | null;
/** Format: uuid */
assetId: string;
assetReference: string;
siteName: string;
requesterLabel: string;
workOrder: {
/** Format: uuid */
id: string;
reference: string;
/** @enum {string} */
status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
} | null;
/** Format: date-time */
createdAt: string;
};
RequestCreate: {
/** Format: uuid */
assetId: string;
description: string;
isPersonTrapped?: boolean;
};
RequestApprove: {
title?: string;
/** @enum {string} */
priority?: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "PERSON_TRAPPED";
assigneeIds?: string[];
/** Format: date-time */
dueDate?: string;
};
RequestReject: {
reason: string;
};
ReferenceValuesResponse: {
referenceValues: {
/** Format: uuid */
id: string;
/** @enum {string} */
field: "DOOR_STATE" | "CABIN_POSITION" | "ANOMALY" | "EXTERNAL_CAUSE" | "ACTION_TAKEN" | "COMPONENT_CONCERNED";
label: string;
isActive: boolean;
usageCount: number;
}[];
};
ReferenceValue: {
/** Format: uuid */
id: string;
/** @enum {string} */
field: "DOOR_STATE" | "CABIN_POSITION" | "ANOMALY" | "EXTERNAL_CAUSE" | "ACTION_TAKEN" | "COMPONENT_CONCERNED";
label: string;
isActive: boolean;
usageCount: number;
};
ReferenceValueCreate: {
/** @enum {string} */
field: "DOOR_STATE" | "CABIN_POSITION" | "ANOMALY" | "EXTERNAL_CAUSE" | "ACTION_TAKEN" | "COMPONENT_CONCERNED";
label: string;
};
ReferenceValueUpdate: {
label?: string;
isActive?: boolean;
};
HealthResponse: {
/** @enum {string} */
status: "ok" | "degraded";
services: {
/** @enum {string} */
database: "up" | "down";
/** @enum {string} */
redis: "up" | "down";
/** @enum {string} */
storage: "up" | "down";
};
};
};
responses: never;
parameters: never;
requestBodies: never;
headers: never;
pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
login: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["LoginRequest"];
};
};
responses: {
/** @description Jeton émis */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AuthResponse"];
};
};
/** @description Identifiants invalides ou compte inactif */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listDemoAccounts: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Comptes isDemo actifs */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["DemoAccountsResponse"];
};
};
};
};
demoLogin: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["DemoLoginRequest"];
};
};
responses: {
/** @description Jeton émis */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AuthResponse"];
};
};
/** @description Le compte nest pas un compte de démonstration */
403: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Compte inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
getMe: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Profil */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MeResponse"];
};
};
/** @description Non authentifié */
401: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
activateAccount: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ActivateRequest"];
};
};
responses: {
/** @description Compte activé et connecté */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AuthResponse"];
};
};
/** @description Lien invalide ou expiré */
400: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listCategories: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["CategoriesResponse"];
};
};
};
};
createCategory: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CategoryCreate"];
};
};
responses: {
/** @description Créée */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Category"];
};
};
/** @description Nom déjà utilisé pour ce type */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updateCategory: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CategoryUpdate"];
};
};
responses: {
/** @description Mise à jour */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Category"];
};
};
/** @description Inconnue */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listLocations: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["LocationsResponse"];
};
};
};
};
createLocation: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["LocationCreate"];
};
};
responses: {
/** @description Créé */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Location"];
};
};
/** @description Hiérarchie trop profonde */
400: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updateLocation: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["LocationUpdate"];
};
};
responses: {
/** @description Mis à jour */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Location"];
};
};
/** @description Inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listAssets: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AssetsResponse"];
};
};
};
};
createAsset: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["AssetCreate"];
};
};
responses: {
/** @description Créé */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AssetDetail"];
};
};
/** @description Référence déjà utilisée */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listAssetOptions: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Options */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AssetOptionsResponse"];
};
};
};
};
getAsset: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Fiche */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AssetDetail"];
};
};
/** @description Inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updateAsset: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["AssetUpdate"];
};
};
responses: {
/** @description Mis à jour */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AssetDetail"];
};
};
/** @description Inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
addAssetComponent: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["AssetComponentCreate"];
};
};
responses: {
/** @description Ajouté */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AssetComponent"];
};
};
/** @description Le type choisi nest pas un type dorgane */
400: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
removeAssetComponent: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
componentId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Retiré */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listTeams: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["TeamsResponse"];
};
};
};
};
createTeam: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["TeamCreate"];
};
};
responses: {
/** @description Créée */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Team"];
};
};
/** @description Nom déjà utilisé */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updateTeam: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["TeamUpdate"];
};
};
responses: {
/** @description Mise à jour */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Team"];
};
};
/** @description Inconnue */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listUsers: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UsersResponse"];
};
};
};
};
listRoles: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["RolesResponse"];
};
};
};
};
inviteUser: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["InvitationCreate"];
};
};
responses: {
/** @description Invitation émise */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["InvitationResponse"];
};
};
/** @description Email déjà utilisé */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
resendInvitation: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Nouveau lien */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["InvitationResponse"];
};
};
/** @description Compte déjà activé */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updateUser: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["UserUpdate"];
};
};
responses: {
/** @description Mise à jour */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["UserAdmin"];
};
};
/** @description Inconnue */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listDocuments: {
parameters: {
query?: {
assetId?: string;
workOrderId?: string;
kind?: string;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["DocumentsResponse"];
};
};
};
};
uploadDocument: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"multipart/form-data": {
/** Format: binary */
file: string;
kind?: string;
assetId?: string;
workOrderId?: string;
};
};
};
responses: {
/** @description Document rangé */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Document"];
};
};
/** @description Type/taille refusé ou rattachement manquant */
400: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
downloadDocument: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Fichier */
200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
deleteDocument: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Supprimé */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
getAnalyticsSummary: {
parameters: {
query?: {
months?: string;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Synthèse */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["AnalyticsSummary"];
};
};
};
};
globalSearch: {
parameters: {
query: {
q: string;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Résultats (5 max par famille) */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["SearchResponse"];
};
};
};
};
listPartners: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PartnersResponse"];
};
};
};
};
createPartner: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PartnerCreate"];
};
};
responses: {
/** @description Créé */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Partner"];
};
};
/** @description Nom déjà utilisé */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updatePartner: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PartnerUpdate"];
};
};
responses: {
/** @description Mis à jour */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Partner"];
};
};
/** @description Inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listParts: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PartsResponse"];
};
};
};
};
createPart: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PartCreate"];
};
};
responses: {
/** @description Créée */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PartDetail"];
};
};
};
};
getPart: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Fiche */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PartDetail"];
};
};
/** @description Inconnue */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updatePart: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PartUpdate"];
};
};
responses: {
/** @description Mise à jour */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PartDetail"];
};
};
/** @description Inconnue */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
addStockMovement: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["StockMovementCreate"];
};
};
responses: {
/** @description Mouvement tracé */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PartDetail"];
};
};
/** @description Le stock ne peut pas devenir négatif */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listPurchaseOrders: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PurchaseOrdersResponse"];
};
};
};
};
createPurchaseOrder: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PurchaseOrderCreate"];
};
};
responses: {
/** @description Créé */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PurchaseOrder"];
};
};
/** @description Fournisseur ou pièce invalide */
400: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
getPurchaseOrder: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Fiche */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PurchaseOrder"];
};
};
/** @description Inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
transitionPurchaseOrder: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PurchaseOrderTransition"];
};
};
responses: {
/** @description État changé */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PurchaseOrder"];
};
};
/** @description Transition interdite */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
consumePart: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ConsumePart"];
};
};
responses: {
/** @description Consommée */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrderDetail"];
};
};
/** @description Stock insuffisant ou prix inconnu */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
addLaborTime: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["LaborTimeCreate"];
};
};
responses: {
/** @description Saisie */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrderDetail"];
};
};
/** @description Taux horaire non défini pour cette personne */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
getPortalAsset: {
parameters: {
query?: never;
header?: never;
path: {
reference: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Appareil */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PortalAsset"];
};
};
/** @description Référence inconnue */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
createPortalRequest: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PortalRequestCreate"];
};
};
responses: {
/** @description Signalement enregistré */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PortalRequestCreated"];
};
};
/** @description Référence inconnue */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
/** @description Trop de signalements — réessayez dans une minute */
429: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
getPortalRequestStatus: {
parameters: {
query?: never;
header?: never;
path: {
reference: string;
token: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Avancement */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PortalRequestStatus"];
};
};
/** @description Signalement inconnu ou jeton invalide */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listTaskTemplates: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["TaskTemplatesResponse"];
};
};
};
};
createTaskTemplate: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["TaskTemplateCreate"];
};
};
responses: {
/** @description Créé */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["TaskTemplate"];
};
};
/** @description Libellé déjà utilisé */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updateTaskTemplate: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["TaskTemplateUpdate"];
};
};
responses: {
/** @description Mis à jour */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["TaskTemplate"];
};
};
/** @description Inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
generatePreventive: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PreventiveGenerate"];
};
};
responses: {
/** @description Résumé de génération */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PreventiveGenerationResult"];
};
};
};
};
getPreventiveStatus: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description État */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PreventiveStatus"];
};
};
};
};
getAssetMeters: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Compteurs */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MetersResponse"];
};
};
/** @description Appareil inconnu */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
addMeterReading: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["MeterReadingCreate"];
};
};
responses: {
/** @description Relevé enregistré */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["MetersResponse"];
};
};
/** @description Relevé inférieur ou égal au précédent */
400: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listWorkOrders: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrdersResponse"];
};
};
};
};
createWorkOrder: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["WorkOrderCreate"];
};
};
responses: {
/** @description Créé */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrderDetail"];
};
};
};
};
getWorkOrder: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Fiche */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrderDetail"];
};
};
/** @description Inconnu (ou hors de son périmètre) */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
transitionWorkOrder: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["TransitionRequest"];
};
};
responses: {
/** @description État changé */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrderDetail"];
};
};
/** @description Transition interdite ou clôture bloquée (garde) */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
commentWorkOrder: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["CommentCreate"];
};
};
responses: {
/** @description Commentaire ajouté */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrderDetail"];
};
};
};
};
setWorkOrderAssignees: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["AssigneesUpdate"];
};
};
responses: {
/** @description Assignés */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrderDetail"];
};
};
};
};
upsertWorkOrderReport: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ReportUpsert"];
};
};
responses: {
/** @description Bilan enregistré */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrderDetail"];
};
};
/** @description Valeur hors référentiel du champ */
400: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
patchChecklistItem: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
itemId: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ChecklistPatch"];
};
};
responses: {
/** @description Tâche réglée */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ChecklistItem"];
};
};
/** @description Tâche inconnue */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listRequests: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["RequestsResponse"];
};
};
};
};
createRequest: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["RequestCreate"];
};
};
responses: {
/** @description Demande créée */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["RequestSummary"];
};
};
};
};
approveRequest: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["RequestApprove"];
};
};
responses: {
/** @description OT créé et lié */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["WorkOrderDetail"];
};
};
/** @description Demande déjà traitée */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
rejectRequest: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["RequestReject"];
};
};
responses: {
/** @description Rejetée */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["RequestSummary"];
};
};
/** @description Demande déjà traitée */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
listReferenceValues: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Liste */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ReferenceValuesResponse"];
};
};
};
};
createReferenceValue: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ReferenceValueCreate"];
};
};
responses: {
/** @description Créée */
201: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ReferenceValue"];
};
};
/** @description Libellé déjà présent pour ce champ */
409: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updateReferenceValue: {
parameters: {
query?: never;
header?: never;
path: {
id: string;
};
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["ReferenceValueUpdate"];
};
};
responses: {
/** @description Mise à jour */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["ReferenceValue"];
};
};
/** @description Inconnue */
404: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
getHealth: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description État agrégé */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["HealthResponse"];
};
};
};
};
}