diff --git a/documentation/OpenApi/openapi.yaml b/documentation/OpenApi/openapi.yaml index b6d7dc1..8c1b127 100644 --- a/documentation/OpenApi/openapi.yaml +++ b/documentation/OpenApi/openapi.yaml @@ -29,7 +29,6 @@ tags: description: Consultation des compositions nutritionnelles et détaillées des produits INCO. paths: - /employees: get: tags: @@ -41,38 +40,38 @@ paths: code site (`siteId`), code service (`serviceId`), ainsi que le tri et la pagination HATEOAS. operationId: listEmployees parameters: - - $ref: '#/components/parameters/Page' - - $ref: '#/components/parameters/PageSize' - - $ref: '#/components/parameters/Offset' - - $ref: '#/components/parameters/Limit' - - $ref: '#/components/parameters/Since' - - $ref: '#/components/parameters/Establishment' - - $ref: '#/components/parameters/SiteId' - - $ref: '#/components/parameters/SiteIds' - - $ref: '#/components/parameters/ServiceId' - - $ref: '#/components/parameters/SortBy' - - $ref: '#/components/parameters/SortDirection' + - $ref: "#/components/parameters/Page" + - $ref: "#/components/parameters/PageSize" + - $ref: "#/components/parameters/Offset" + - $ref: "#/components/parameters/Limit" + - $ref: "#/components/parameters/Since" + - $ref: "#/components/parameters/Establishment" + - $ref: "#/components/parameters/SiteId" + - $ref: "#/components/parameters/SiteIds" + - $ref: "#/components/parameters/ServiceId" + - $ref: "#/components/parameters/SortBy" + - $ref: "#/components/parameters/SortDirection" responses: - '200': + "200": description: Page d'employés récupérée avec succès. content: application/json: schema: - $ref: '#/components/schemas/EmployeeListResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' + $ref: "#/components/schemas/EmployeeListResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/TooManyRequests" + "500": + $ref: "#/components/responses/InternalServerError" + "503": + $ref: "#/components/responses/ServiceUnavailable" /employees/{employeeId}: get: @@ -83,30 +82,30 @@ paths: Retourne la fiche détaillée d'un employé spécifié par son matricule public unique. operationId: getEmployee parameters: - - $ref: '#/components/parameters/EmployeeIdPath' + - $ref: "#/components/parameters/EmployeeIdPath" responses: - '200': + "200": description: Fiche employé trouvée. content: application/json: schema: - $ref: '#/components/schemas/EmployeeItemResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' + $ref: "#/components/schemas/EmployeeItemResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/TooManyRequests" + "500": + $ref: "#/components/responses/InternalServerError" + "503": + $ref: "#/components/responses/ServiceUnavailable" /inco-sheets: get: @@ -118,36 +117,36 @@ paths: Prend en charge le filtrage par marques (`brands`), la date de modification (`since`), la projection au format court (`short=true`), ainsi que le tri et la pagination. operationId: listIncoSheets parameters: - - $ref: '#/components/parameters/Page' - - $ref: '#/components/parameters/PageSize' - - $ref: '#/components/parameters/Offset' - - $ref: '#/components/parameters/Limit' - - $ref: '#/components/parameters/Since' - - $ref: '#/components/parameters/Brands' - - $ref: '#/components/parameters/ShortProjection' - - $ref: '#/components/parameters/IncoSortBy' - - $ref: '#/components/parameters/SortDirection' + - $ref: "#/components/parameters/Page" + - $ref: "#/components/parameters/PageSize" + - $ref: "#/components/parameters/Offset" + - $ref: "#/components/parameters/Limit" + - $ref: "#/components/parameters/Since" + - $ref: "#/components/parameters/Brands" + - $ref: "#/components/parameters/ShortProjection" + - $ref: "#/components/parameters/IncoSortBy" + - $ref: "#/components/parameters/SortDirection" responses: - '200': + "200": description: Page de fiches INCO récupérée avec succès. content: application/json: schema: - $ref: '#/components/schemas/IncoListResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' + $ref: "#/components/schemas/IncoListResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/TooManyRequests" + "500": + $ref: "#/components/responses/InternalServerError" + "503": + $ref: "#/components/responses/ServiceUnavailable" /inco-sheets/search: get: @@ -159,30 +158,30 @@ paths: Prend également en charge la projection au format court (`short=true`). operationId: searchIncoSheets parameters: - - $ref: '#/components/parameters/IncoIdLike' - - $ref: '#/components/parameters/BrandsRequired' - - $ref: '#/components/parameters/ShortProjection' + - $ref: "#/components/parameters/IncoIdLike" + - $ref: "#/components/parameters/BrandsRequired" + - $ref: "#/components/parameters/ShortProjection" responses: - '200': + "200": description: Résultats de recherche INCO. content: application/json: schema: - $ref: '#/components/schemas/IncoListResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' + $ref: "#/components/schemas/IncoListResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/TooManyRequests" + "500": + $ref: "#/components/responses/InternalServerError" + "503": + $ref: "#/components/responses/ServiceUnavailable" /inco-sheets/{incoId}: get: @@ -193,30 +192,30 @@ paths: Retourne la fiche produit INCO détaillée correspondant à l'identifiant spécifié. operationId: getIncoSheet parameters: - - $ref: '#/components/parameters/IncoIdPath' + - $ref: "#/components/parameters/IncoIdPath" responses: - '200': + "200": description: Fiche produit INCO trouvée. content: application/json: schema: - $ref: '#/components/schemas/IncoItemResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' + $ref: "#/components/schemas/IncoItemResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/TooManyRequests" + "500": + $ref: "#/components/responses/InternalServerError" + "503": + $ref: "#/components/responses/ServiceUnavailable" /inco-sheets/{incoId}/composition: get: @@ -227,30 +226,30 @@ paths: Retourne le détail de la composition nutritionnelle et des ingrédients liés à une fiche INCO. operationId: getIncoCompositionByIncoId parameters: - - $ref: '#/components/parameters/IncoIdPath' + - $ref: "#/components/parameters/IncoIdPath" responses: - '200': + "200": description: Composition INCO trouvée. content: application/json: schema: - $ref: '#/components/schemas/IncoCompoItemResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '503': - $ref: '#/components/responses/ServiceUnavailable' + $ref: "#/components/schemas/IncoCompoItemResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "422": + $ref: "#/components/responses/UnprocessableEntity" + "429": + $ref: "#/components/responses/TooManyRequests" + "500": + $ref: "#/components/responses/InternalServerError" + "503": + $ref: "#/components/responses/ServiceUnavailable" components: securitySchemes: @@ -279,7 +278,7 @@ components: schema: type: string pattern: '^\d{7,8}$' - example: '01155902' + example: "01155902" Page: name: page @@ -333,7 +332,7 @@ components: schema: type: string format: date-time - example: '2026-01-01T00:00:00Z' + example: "2026-01-01T00:00:00Z" Establishment: name: establishment @@ -343,7 +342,7 @@ components: schema: type: string pattern: '^[\dA-Z]{2,}$' - example: '01' + example: "01" SiteId: name: siteId @@ -352,8 +351,8 @@ components: description: "Filtrer par code site (ex: LDCSER, SLELA)." schema: type: string - pattern: '^[A-Z]{2,}$' - example: 'LDCSER' + pattern: "^[A-Z]{2,}$" + example: "LDCSER" SiteIds: name: siteIds @@ -367,8 +366,8 @@ components: minItems: 1 items: type: string - pattern: '^[A-Z]{2,}$' - example: ['LDCSER', 'SLELA'] + pattern: "^[A-Z]{2,}$" + example: ["LDCSER", "SLELA"] ServiceId: name: serviceId @@ -378,7 +377,7 @@ components: schema: type: string pattern: '^\d{1,}$' - example: '097' + example: "097" SortBy: name: sortBy @@ -418,7 +417,7 @@ components: schema: type: string pattern: '^\d{1,}$' - example: '12345' + example: "12345" IncoIdLike: name: incoIdLike @@ -427,7 +426,7 @@ components: description: Motif de recherche d'ID (SQL LIKE). schema: type: string - example: '123%' + example: "123%" Brands: name: brands @@ -441,7 +440,7 @@ components: minItems: 1 items: type: string - example: ['M01', 'M02'] + example: ["M01", "M02"] BrandsRequired: name: brands @@ -455,7 +454,7 @@ components: minItems: 1 items: type: string - example: ['M01', 'M02'] + example: ["M01", "M02"] ShortProjection: name: short @@ -486,42 +485,42 @@ components: content: application/problem+json: schema: - $ref: '#/components/schemas/ProblemDetails' + $ref: "#/components/schemas/ProblemDetails" Unauthorized: description: Échec d'authentification HMAC ou signature invalide (401 Unauthorized). content: application/problem+json: schema: - $ref: '#/components/schemas/ProblemDetails' + $ref: "#/components/schemas/ProblemDetails" Forbidden: description: Client non autorisé à accéder à cette ressource (403 Forbidden). content: application/problem+json: schema: - $ref: '#/components/schemas/ProblemDetails' + $ref: "#/components/schemas/ProblemDetails" NotFound: description: Ressource introuvable (404 Not Found). content: application/problem+json: schema: - $ref: '#/components/schemas/ProblemDetails' + $ref: "#/components/schemas/ProblemDetails" UnprocessableEntity: description: Erreur sémantique ou violation des règles du domaine (422 Unprocessable Entity). content: application/problem+json: schema: - $ref: '#/components/schemas/ValidationErrorProblemDetails' + $ref: "#/components/schemas/ValidationErrorProblemDetails" TooManyRequests: description: Trop de requêtes envoyées dans un laps de temps donné (429 Too Many Requests). content: application/problem+json: schema: - $ref: '#/components/schemas/ProblemDetails' + $ref: "#/components/schemas/ProblemDetails" headers: Retry-After: description: Le nombre de secondes avant de pouvoir réessayer. @@ -541,14 +540,14 @@ components: content: application/problem+json: schema: - $ref: '#/components/schemas/ProblemDetails' + $ref: "#/components/schemas/ProblemDetails" ServiceUnavailable: description: Service temporairement indisponible (503 Service Unavailable). content: application/problem+json: schema: - $ref: '#/components/schemas/ProblemDetails' + $ref: "#/components/schemas/ProblemDetails" schemas: Employee: @@ -567,7 +566,7 @@ components: type: string pattern: '^\d{7,8}$' description: Matricule public unique de l'employé. - example: '01155902' + example: "01155902" firstName: type: string description: Prénom de l'employé. @@ -580,50 +579,50 @@ components: type: string pattern: '^[\dA-Z]{2,}$' description: Code de l'établissement d'affectation. - example: '01' + example: "01" site: type: string - pattern: '^[A-Z]{2,}$' + pattern: "^[A-Z]{2,}$" description: Code du site géographique. example: LDCSER service: type: string pattern: '^\d{1,}$' description: Identifiant du service interne. - example: '097' + example: "097" startDate: type: string format: date description: Date de prise de poste (YYYY-MM-DD). - example: '2024-01-15' + example: "2024-01-15" endDate: type: - string - - 'null' + - "null" format: date description: Date de fin de contrat effective (optionnelle). example: null plannedEndDate: type: - string - - 'null' + - "null" format: date description: Date de fin de contrat prévue (optionnelle). example: null createdAt: type: - string - - 'null' + - "null" format: date-time description: Date d'enregistrement dans le système. - example: '2026-08-11T14:00:00Z' + example: "2026-08-11T14:00:00Z" updatedAt: type: - string - - 'null' + - "null" format: date-time description: Date de dernière mise à jour. - example: '2026-08-11T14:00:00Z' + example: "2026-08-11T14:00:00Z" PaginationLinks: type: object @@ -637,31 +636,31 @@ components: type: string format: uri description: Lien vers la page courante. - example: 'http://127.0.0.1:8000/api/v1/employees?page=1&pageSize=25' + example: "http://127.0.0.1:8000/api/v1/employees?page=1&pageSize=25" first: type: string format: uri description: Lien vers la première page. - example: 'http://127.0.0.1:8000/api/v1/employees?page=1&pageSize=25' + example: "http://127.0.0.1:8000/api/v1/employees?page=1&pageSize=25" prev: type: - string - - 'null' + - "null" format: uri description: Lien vers la page précédente (null si première page). example: null next: type: - string - - 'null' + - "null" format: uri description: Lien vers la page suivante (null si dernière page). - example: 'http://127.0.0.1:8000/api/v1/employees?page=2&pageSize=25' + example: "http://127.0.0.1:8000/api/v1/employees?page=2&pageSize=25" last: type: string format: uri description: Lien vers la dernière page. - example: 'http://127.0.0.1:8000/api/v1/employees?page=2&pageSize=25' + example: "http://127.0.0.1:8000/api/v1/employees?page=2&pageSize=25" PaginationMeta: type: object @@ -694,7 +693,7 @@ components: description: Nombre total de pages disponibles. example: 2 links: - $ref: '#/components/schemas/PaginationLinks' + $ref: "#/components/schemas/PaginationLinks" EmployeeListResponse: type: object @@ -707,9 +706,9 @@ components: type: array description: Collection des employés de la page. items: - $ref: '#/components/schemas/Employee' + $ref: "#/components/schemas/Employee" pagination: - $ref: '#/components/schemas/PaginationMeta' + $ref: "#/components/schemas/PaginationMeta" EmployeeItemResponse: type: object @@ -718,7 +717,7 @@ components: - employee properties: employee: - $ref: '#/components/schemas/Employee' + $ref: "#/components/schemas/Employee" IncoBrand: type: object @@ -752,7 +751,7 @@ components: id: type: string pattern: '^\d{1,}$' - example: '12345' + example: "12345" name: type: string example: Poulet Rôti 1kg @@ -763,7 +762,7 @@ components: type: string example: Poulet prêt à cuire élevé en France allegations: - $ref: '#/components/schemas/IncoAllegations' + $ref: "#/components/schemas/IncoAllegations" sellArguments: type: string preparationAdvices: @@ -771,57 +770,57 @@ components: tips: type: - string - - 'null' + - "null" example: Servir chaud sellFamilly: type: - string - - 'null' + - "null" example: Volaille ingredients: - $ref: '#/components/schemas/IncoIngredients' + $ref: "#/components/schemas/IncoIngredients" portions: oneOf: - - $ref: '#/components/schemas/IncoPortionAmount' - - type: 'null' + - $ref: "#/components/schemas/IncoPortionAmount" + - type: "null" allergens: type: array items: - $ref: '#/components/schemas/IncoAllergen' + $ref: "#/components/schemas/IncoAllergen" brand: - $ref: '#/components/schemas/IncoBrand' + $ref: "#/components/schemas/IncoBrand" isSeasonal: type: boolean weight: oneOf: - - $ref: '#/components/schemas/IncoWeight' - - type: 'null' + - $ref: "#/components/schemas/IncoWeight" + - type: "null" nutriscore: oneOf: - - $ref: '#/components/schemas/IncoNutriscore' - - type: 'null' + - $ref: "#/components/schemas/IncoNutriscore" + - type: "null" storageCondition: oneOf: - - $ref: '#/components/schemas/IncoStorageCondition' - - type: 'null' + - $ref: "#/components/schemas/IncoStorageCondition" + - type: "null" additives: type: array items: - $ref: '#/components/schemas/IncoAdditive' + $ref: "#/components/schemas/IncoAdditive" compo: type: - string - - 'null' + - "null" pattern: '^\d{1,}$' createdAt: type: - string - - 'null' + - "null" format: date-time updatedAt: type: - string - - 'null' + - "null" format: date-time IncoWeight: @@ -858,17 +857,17 @@ components: type: array items: type: string - example: ['Volaille française'] + example: ["Volaille française"] health: type: array items: type: string - example: ['Riche en protéines'] + example: ["Riche en protéines"] nutrition: type: array items: type: string - example: ['Faible en matière grasse'] + example: ["Faible en matière grasse"] other: type: array items: @@ -883,8 +882,8 @@ components: items: type: string example: - Ingrédients: ['Viande de dinde (66%)', 'Gras de dinde', 'Persil', 'Sel'] - Traces: ['Aucun allergène'] + Ingrédients: ["Viande de dinde (66%)", "Gras de dinde", "Persil", "Sel"] + Traces: ["Aucun allergène"] IncoPortionAmount: type: object @@ -967,7 +966,7 @@ components: id: type: string pattern: '^\d{1,}$' - example: '12345' + example: "12345" name: type: string example: Poulet Rôti 1kg @@ -977,12 +976,12 @@ components: createdAt: type: - string - - 'null' + - "null" format: date-time updatedAt: type: - string - - 'null' + - "null" format: date-time IncoCompo: @@ -1009,39 +1008,39 @@ components: id: type: string pattern: '^\d{1,}$' - example: '67890' + example: "67890" incoId: type: string pattern: '^\d{1,}$' - example: '12345' + example: "12345" identification: - $ref: '#/components/schemas/IncoCompoIdentification' + $ref: "#/components/schemas/IncoCompoIdentification" energy: - $ref: '#/components/schemas/IncoCompoEnergy' + $ref: "#/components/schemas/IncoCompoEnergy" referenceMacronutrients: - $ref: '#/components/schemas/IncoCompoReferenceMacronutrients' + $ref: "#/components/schemas/IncoCompoReferenceMacronutrients" portionMacronutrients: - $ref: '#/components/schemas/IncoCompoPortionMacronutrients' + $ref: "#/components/schemas/IncoCompoPortionMacronutrients" freshProduceAndNuts: - $ref: '#/components/schemas/IncoCompoFreshProduceAndNuts' + $ref: "#/components/schemas/IncoCompoFreshProduceAndNuts" referenceIntakes: - $ref: '#/components/schemas/IncoCompoReferenceIntakes' + $ref: "#/components/schemas/IncoCompoReferenceIntakes" nutriScore: - $ref: '#/components/schemas/IncoCompoNutriScore' + $ref: "#/components/schemas/IncoCompoNutriScore" nutriScorePoints: - $ref: '#/components/schemas/IncoCompoNutriScorePoints' + $ref: "#/components/schemas/IncoCompoNutriScorePoints" minerals: - $ref: '#/components/schemas/IncoCompoMinerals' + $ref: "#/components/schemas/IncoCompoMinerals" vitamins: - $ref: '#/components/schemas/IncoCompoVitamins' + $ref: "#/components/schemas/IncoCompoVitamins" carbohydratesDetail: - $ref: '#/components/schemas/IncoCompoCarbohydratesDetail' + $ref: "#/components/schemas/IncoCompoCarbohydratesDetail" fattyAcids: - $ref: '#/components/schemas/IncoCompoFattyAcids' + $ref: "#/components/schemas/IncoCompoFattyAcids" aminoAcids: - $ref: '#/components/schemas/IncoCompoAminoAcids' + $ref: "#/components/schemas/IncoCompoAminoAcids" specialCompounds: - $ref: '#/components/schemas/IncoCompoSpecialCompounds' + $ref: "#/components/schemas/IncoCompoSpecialCompounds" NutrientValue: type: object @@ -1049,12 +1048,12 @@ components: properties: amount: type: string - example: '12.5' + example: "12.5" precision: type: - string - - 'null' - example: '=' + - "null" + example: "=" PercentageValue: type: object @@ -1062,7 +1061,7 @@ components: properties: value: type: string - example: '45.5' + example: "45.5" EnergyValues: type: object @@ -1070,13 +1069,13 @@ components: properties: size: type: string - example: '100' + example: "100" energyKj: type: string - example: '850' + example: "850" energyKcal: type: string - example: '203' + example: "203" FruitAndNutAmount: type: object @@ -1084,13 +1083,13 @@ components: properties: fruits: type: string - example: '0' + example: "0" nuts: type: string - example: '0' + example: "0" freshFnl: type: string - example: '0' + example: "0" IncoCompoIdentification: type: object @@ -1101,7 +1100,7 @@ components: example: Poulet Rôti 1kg number: type: string - example: '12345' + example: "12345" source: type: string example: LDC @@ -1111,95 +1110,95 @@ components: description: Valeurs énergétiques. properties: reference: - $ref: '#/components/schemas/EnergyValues' + $ref: "#/components/schemas/EnergyValues" portion: - $ref: '#/components/schemas/EnergyValues' + $ref: "#/components/schemas/EnergyValues" IncoCompoReferenceMacronutrients: type: object description: Macronutriments de référence pour 100g/ml. properties: fat: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" saturatedFat: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" carbohydrates: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" sugars: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" fiber: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" protein: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" salt: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" sodium: type: string - example: '480' + example: "480" IncoCompoPortionMacronutrients: type: object description: Macronutriments par portion. properties: fat: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" saturatedFat: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" carbohydrates: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" sugars: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" fiber: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" protein: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" salt: - $ref: '#/components/schemas/NutrientValue' + $ref: "#/components/schemas/NutrientValue" sodium: type: string - example: '720' + example: "720" IncoCompoFreshProduceAndNuts: type: object description: Teneur en fruits, légumes et noix (FNL). properties: reference: - $ref: '#/components/schemas/FruitAndNutAmount' + $ref: "#/components/schemas/FruitAndNutAmount" portion: - $ref: '#/components/schemas/FruitAndNutAmount' + $ref: "#/components/schemas/FruitAndNutAmount" freshFnlPercentage: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" fruitsPercentage: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" IncoCompoReferenceIntakes: type: object description: Pourcentages des apports de référence (AR / ARIC). properties: energyE14: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" energyKj: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" fat: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" saturatedFat: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" carbohydrates: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" sugars: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" protein: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" salt: - $ref: '#/components/schemas/PercentageValue' + $ref: "#/components/schemas/PercentageValue" portionAmount: type: string - example: '150' + example: "150" proteinToLipidRatio: type: - string - - 'null' - example: '1.76' + - "null" + example: "1.76" IncoCompoNutriScore: type: object @@ -1207,22 +1206,22 @@ components: properties: negativeComponent: type: string - example: '3' + example: "3" negativeComponent2022: type: string - example: '3' + example: "3" positiveComponent: type: string - example: '5' + example: "5" positiveComponent2022: type: string - example: '5' + example: "5" score: type: string - example: '-2' + example: "-2" score2022: type: string - example: '-2' + example: "-2" grade: type: string example: A @@ -1231,10 +1230,10 @@ components: example: A isGradeAArticle: type: string - example: '1' + example: "1" isRedMeat: type: string - example: '0' + example: "0" IncoCompoNutriScorePoints: type: object @@ -1242,25 +1241,25 @@ components: properties: energyPoints: type: string - example: '2' + example: "2" saturatedFatPoints: type: string - example: '3' + example: "3" sugarsPoints: type: string - example: '0' + example: "0" saltPoints: type: string - example: '2' + example: "2" fiberPoints: type: string - example: '0' + example: "0" proteinPoints: type: string - example: '5' + example: "5" freshFnlPoints: type: string - example: '0' + example: "0" IncoCompoMinerals: type: object @@ -1268,49 +1267,49 @@ components: properties: calcium: type: string - example: '12.0' + example: "12.0" magnesium: type: string - example: '24.0' + example: "24.0" potassium: type: string - example: '350.0' + example: "350.0" phosphorus: type: string - example: '210.0' + example: "210.0" chloride: type: string - example: '0.0' + example: "0.0" iron: type: string - example: '1.1' + example: "1.1" zinc: type: string - example: '1.8' + example: "1.8" copper: type: string - example: '0.08' + example: "0.08" manganese: type: string - example: '0.02' + example: "0.02" selenium: type: string - example: '18.5' + example: "18.5" iodine: type: string - example: '4.2' + example: "4.2" chromium: type: string - example: '0.0' + example: "0.0" molybdenum: type: string - example: '0.0' + example: "0.0" sulfur: type: string - example: '0.0' + example: "0.0" nitrates: type: string - example: '0.0' + example: "0.0" IncoCompoVitamins: type: object @@ -1318,31 +1317,31 @@ components: properties: vitaminA: type: string - example: '30.0' + example: "30.0" vitaminB6: type: string - example: '0.4' + example: "0.4" vitaminB12: type: string - example: '0.3' + example: "0.3" vitaminC: type: string - example: '0.0' + example: "0.0" vitaminD: type: string - example: '0.1' + example: "0.1" vitaminE: type: string - example: '0.3' + example: "0.3" vitaminK: type: string - example: '1.2' + example: "1.2" cholecalciferol: type: string - example: '0.1' + example: "0.1" niacin: type: string - example: '8.5' + example: "8.5" IncoCompoCarbohydratesDetail: type: object @@ -1350,46 +1349,46 @@ components: properties: starch: type: string - example: '0.0' + example: "0.0" maltodextrin: type: string - example: '0.0' + example: "0.0" sucrose: type: string - example: '0.2' + example: "0.2" glucose: type: string - example: '0.0' + example: "0.0" lactose: type: string - example: '0.0' + example: "0.0" maltose: type: string - example: '0.0' + example: "0.0" galactose: type: string - example: '0.0' + example: "0.0" carbohydrateHydrates: type: string - example: '0.5' + example: "0.5" boundFructose: type: string - example: '0.0' + example: "0.0" freeFructose: type: string - example: '0.0' + example: "0.0" oligosaccharides: type: string - example: '0.0' + example: "0.0" polyols: type: string - example: '0.0' + example: "0.0" solubleFiber: type: string - example: '0.0' + example: "0.0" inositol: type: string - example: '0.0' + example: "0.0" IncoCompoFattyAcids: type: object @@ -1398,239 +1397,239 @@ components: nutFd: type: string description: Lipides totaux (g/100g). - example: '12.5' + example: "12.5" nutChol: type: string description: Cholestérol (mg/100g). - example: '75.0' + example: "75.0" nutAgt: type: string description: Acides gras trans (g/100g). - example: '0.1' + example: "0.1" nutFformiq: type: string description: Acide formique (C1:0). - example: '0.0' + example: "0.0" nutFacetiq: type: string description: Acide acétique (C2:0). - example: '0.0' + example: "0.0" nutFpropioniq: type: string description: Acide propionique (C3:0). - example: '0.0' + example: "0.0" nutFbutyriq: type: string description: Acide butyrique (C4:0). - example: '0.0' + example: "0.0" nutFvaleriq: type: string description: Acide valérique (C5:0). - example: '0.0' + example: "0.0" nutFcaproiq: type: string description: Acide caproïque (C6:0). - example: '0.0' + example: "0.0" nutFenatiq: type: string description: Acide énanthique (C7:0). - example: '0.0' + example: "0.0" nutFcapryliq: type: string description: Acide caprylique (C8:0). - example: '0.0' + example: "0.0" nutFpelargoniq: type: string description: Acide pélargonique (C9:0). - example: '0.0' + example: "0.0" nutFcapriq: type: string description: Acide caprique (C10:0). - example: '0.0' + example: "0.0" nutFundecyliq: type: string description: Acide undécylique (C11:0). - example: '0.0' + example: "0.0" nutFlauriq: type: string description: Acide laurique (C12:0). - example: '0.0' + example: "0.0" nutFtridecyliq: type: string description: Acide tridécylique (C13:0). - example: '0.0' + example: "0.0" nutFmyristiq: type: string description: Acide myristique (C14:0). - example: '0.1' + example: "0.1" nutFpentadecyliq: type: string description: Acide pentadécylique (C15:0). - example: '0.0' + example: "0.0" nutF16d0: type: string description: Acide palmitique (C16:0). - example: '2.5' + example: "2.5" nutFmargariq: type: string description: Acide margarique (C17:0). - example: '0.0' + example: "0.0" nutFsteariq: type: string description: Acide stéarique (C18:0). - example: '0.6' + example: "0.6" nutFarachidiq: type: string description: Acide arachidique (C20:0). - example: '0.0' + example: "0.0" nutFheneicosyliq: type: string description: Acide héneicosylique (C21:0). - example: '0.0' + example: "0.0" nutFbeheniq: type: string description: Acide béhénique (C22:0). - example: '0.0' + example: "0.0" nutFtricosiliq: type: string description: Acide tétracosanoïque (C23:0). - example: '0.0' + example: "0.0" nutFlignoceriq: type: string description: Acide lignocérique (C24:0). - example: '0.0' + example: "0.0" nutFcarboceriq: type: string description: Acide carbocérique (C26:0). - example: '0.0' + example: "0.0" nutFcerotiq: type: string description: Acide cérotique (C26:0 alt.). - example: '0.0' + example: "0.0" nutFceroplastiq: type: string description: Acide céroplastique. - example: '0.0' + example: "0.0" nutFmontaniq: type: string description: Acide montanique (C28:0). - example: '0.0' + example: "0.0" nutFnonacosyliq: type: string description: Acide nonacosylique (C29:0). - example: '0.0' + example: "0.0" nutFmelissiq: type: string description: Acide mélissique (C30:0). - example: '0.0' + example: "0.0" nutFlaceroiq: type: string description: Acide lacéroïque (C32:0). - example: '0.0' + example: "0.0" nutFhentriacontyliq: type: string description: Acide hentriacontylique (C31:0). - example: '0.0' + example: "0.0" nutFhextriacontyliq: type: string description: Acide hexatriacontylique (C36:0). - example: '0.0' + example: "0.0" nutFheptatriacontyliq: type: string description: Acide heptatriacontylique (C37:0). - example: '0.0' + example: "0.0" nutFoctatriacontyliq: type: string description: Acide octariacontylique (C38:0). - example: '0.0' + example: "0.0" nutFnonadylique: type: string description: Acide nonadylique. - example: '0.0' + example: "0.0" nutFpsylliq: type: string description: Acide psyllique. - example: '0.0' + example: "0.0" nutFpalm: type: string description: Acide palmitoléique (C16:1). - example: '0.8' + example: "0.8" nutFoleiq: type: string description: Acide oléique (C18:1 ω-9). - example: '4.5' + example: "4.5" nutF18d: type: string description: C18 insaturé (générique). - example: '0.0' + example: "0.0" nutF19d: type: string description: C19 insaturé. - example: '0.0' + example: "0.0" nutF11eico: type: string description: Acide gondoïque (C20:1). - example: '0.1' + example: "0.1" nutFgeddiq: type: string description: Acide geddique (C20:1 alt.). - example: '0.0' + example: "0.0" nutFeruciq: type: string description: Acide érucique (C22:1). - example: '0.0' + example: "0.0" nutFnervoniq: type: string description: Acide nervonique (C24:1). - example: '0.0' + example: "0.0" nutFhyeniq: type: string description: Acide hyénique. - example: '0.0' + example: "0.0" nutFamscis: type: string description: AG monoinsaturés cis (total). - example: '5.4' + example: "5.4" nutF18d2cn6: type: string description: Acide linoléique (C18:2 ω-6). - example: '2.1' + example: "2.1" nutF18d3n3: type: string description: Acide α-linolénique (C18:3 ω-3). - example: '0.3' + example: "0.3" nutF20d4: type: string description: Acide arachidonique (C20:4). - example: '0.1' + example: "0.1" nutF20d5n3: type: string description: EPA (C20:5 ω-3). - example: '0.0' + example: "0.0" nutF22d6n3: type: string description: DHA (C22:6 ω-3). - example: '0.0' + example: "0.0" nutFapun3: type: string description: AGPI ω-3 (total). - example: '0.3' + example: "0.3" nutFapun6: type: string description: AGPI ω-6 (total). - example: '2.2' + example: "2.2" nutFapun9: type: string description: AGPI ω-9 (total). - example: '0.0' + example: "0.0" nutFapucis: type: string description: AGPI cis (total). - example: '2.5' + example: "2.5" nutFapulc: type: string description: AGPI longue chaîne (total). - example: '0.1' + example: "0.1" IncoCompoAminoAcids: type: object @@ -1639,15 +1638,15 @@ components: essentialAminoAcids: type: string description: Acides aminés essentiels (total g/100g). - example: '8.5' + example: "8.5" caseins: type: string description: Caséines (g/100g). - example: '0.0' + example: "0.0" wheyProtein: type: string description: Protéines de lactosérum (g/100g). - example: '0.0' + example: "0.0" IncoCompoSpecialCompounds: type: object @@ -1656,19 +1655,19 @@ components: choline: type: string description: Choline (mg/100g). - example: '65.0' + example: "65.0" carnitine: type: string description: Carnitine (mg/100g). - example: '8.2' + example: "8.2" taurine: type: string description: Taurine (mg/100g). - example: '12.0' + example: "12.0" nucleotides: type: string description: Nucléotides (mg/100g). - example: '0.0' + example: "0.0" IncoListResponse: type: object @@ -1682,10 +1681,10 @@ components: description: Collection des fiches INCO (format complet ou court). items: anyOf: - - $ref: '#/components/schemas/Inco' - - $ref: '#/components/schemas/IncoShort' + - $ref: "#/components/schemas/Inco" + - $ref: "#/components/schemas/IncoShort" pagination: - $ref: '#/components/schemas/PaginationMeta' + $ref: "#/components/schemas/PaginationMeta" IncoShortListResponse: type: object @@ -1697,9 +1696,9 @@ components: incoSheets: type: array items: - $ref: '#/components/schemas/IncoShort' + $ref: "#/components/schemas/IncoShort" pagination: - $ref: '#/components/schemas/PaginationMeta' + $ref: "#/components/schemas/PaginationMeta" IncoItemResponse: type: object @@ -1708,7 +1707,7 @@ components: - incoSheet properties: incoSheet: - $ref: '#/components/schemas/Inco' + $ref: "#/components/schemas/Inco" IncoCompoItemResponse: type: object @@ -1717,7 +1716,7 @@ components: - composition properties: composition: - $ref: '#/components/schemas/IncoCompo' + $ref: "#/components/schemas/IncoCompo" ProblemDetails: type: object @@ -1732,11 +1731,11 @@ components: type: string format: uri description: URI identifiant le type de problème. - example: 'http://127.0.0.1:8000/errors/not-found' + example: "http://127.0.0.1:8000/errors/not-found" title: type: string description: Titre court lisible résumant le problème. - example: 'Resource Not Found' + example: "Resource Not Found" status: type: integer description: Code statut HTTP. @@ -1748,10 +1747,10 @@ components: instance: type: - string - - 'null' + - "null" format: uri-reference description: URI de l'endpoint ayant généré l'erreur. - example: '/api/v1/employees/9999999' + example: "/api/v1/employees/9999999" InvalidParamItem: type: object @@ -1767,7 +1766,7 @@ components: reason: type: string description: Raison du rejet de validation. - example: 'The employeeId pattern must be 7 or 8 digits.' + example: "The employeeId pattern must be 7 or 8 digits." ValidationErrorProblemDetails: type: object @@ -1783,11 +1782,11 @@ components: type: string format: uri description: URI identifiant l'erreur de validation. - example: 'http://127.0.0.1:8000/errors/validation-error' + example: "http://127.0.0.1:8000/errors/validation-error" title: type: string description: Titre de l'erreur. - example: 'Unprocessable Entity' + example: "Unprocessable Entity" status: type: integer description: Code HTTP (422). @@ -1795,9 +1794,9 @@ components: detail: type: string description: Message d'ensemble. - example: 'The given data was invalid.' + example: "The given data was invalid." invalidParams: type: array description: Liste des paramètres invalides et motifs. items: - $ref: '#/components/schemas/InvalidParamItem' + $ref: "#/components/schemas/InvalidParamItem"