{"openapi":"3.0.0","paths":{"/api/v1/backoffice/pers-package":{"get":{"operationId":"BOPersPackagesController_getListPersPackage","parameters":[{"name":"offset","required":false,"in":"query","schema":{"default":"","type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":"","type":"number"}},{"name":"statusReceptionPackage","required":false,"in":"query","schema":{"enum":["RECEIVED","ON_ERROR",1,2],"type":"string"}},{"name":"statusAnalyzePackage","required":false,"in":"query","schema":{"enum":["TO_ANALYZE","ANALYZED","ON_ERROR",1,2,3],"type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"type":"string"}},{"name":"startDate","required":false,"in":"query","schema":{"type":"string"}},{"name":"persSerialNumber","required":false,"in":"query","schema":{"type":"string"}},{"name":"packageId","required":false,"in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Get a list pers package successfully"},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"security":[{"bearer":[]}],"summary":"Get a list pers package","tags":["Back Office - Pers Package"]}},"/api/v1/backoffice/pers-package/{id}":{"get":{"operationId":"BOPersPackagesController_findById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Get a pers package by id successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersPackageResponseDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"security":[{"bearer":[]}],"summary":"Get a pers package by id","tags":["Back Office - Pers Package"]}},"/api/v1/pers-package/reception":{"post":{"description":"This API will receive all the PersPackages from the PERS.","operationId":"PersPackagesController_receptionPersPackage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceptionPersPackagesDTO"}}}},"responses":{"200":{"description":"For all received Packages, with or without Error, we will return the list of Received idPackages.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseReceptionPersPackagesDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Receive PersPackages","tags":["Pers Package"]}},"/api/v1/backoffice/pers-package-log":{"get":{"operationId":"BOPersPackagesController_getListPerPackageLog","parameters":[{"name":"offset","required":false,"in":"query","schema":{"default":"","type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"default":"","type":"number"}},{"name":"statusTrip","required":false,"in":"query","schema":{"enum":["TO_ANALYZE","PACKAGE_LINKED_TO_TRIP","PACKAGE_IGNORED","ON_ERROR",1,2,3,4],"type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"type":"string"}},{"name":"startDate","required":false,"in":"query","schema":{"type":"string"}},{"name":"userName","required":false,"in":"query","schema":{"type":"string"}},{"name":"persId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Get a list pers package log successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPersPackageLogDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"security":[{"bearer":[]}],"summary":"Get a list pers package log","tags":["Back Office - Pers Package Log"]}},"/api/v1/backoffice/vehicle-trips":{"get":{"operationId":"BOVehicleTripsController_getListPersPackage","parameters":[{"name":"offset","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"sortBy","required":false,"in":"query","schema":{"type":"string"}},{"name":"dtTripBegin","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"dtTripEnd","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"persId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Get a list Vehicle Trips successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAdminListVehicleTripsDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"security":[{"bearer":[]}],"summary":"Get a list Vehicle Trips","tags":["Back Office - Vehicle Trips"]}},"/api/v1/backoffice/vehicle-trips/{vehicleTripId}":{"get":{"operationId":"BOVehicleTripsController_findById","parameters":[{"name":"vehicleTripId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Get Vehicle Trips By Id successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminVehicleTripsDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"security":[{"bearer":[]}],"summary":"Get Vehicle Trips By Id","tags":["Back Office - Vehicle Trips"]}},"/api/v1/backoffice/vehicle-trips/{vehicleTripId}/export":{"get":{"description":"Exports the details of a specific vehicle trip as a downloadable file. The file format is XLSX, which includes the trip information and relevant statistics.","operationId":"BOVehicleTripsController_exportVehicleTrip","parameters":[{"name":"vehicleTripId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The vehicle trip data is exported and returned as a XLSX file.","content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"security":[{"bearer":[]}],"summary":"Export a Vehicle Trip by ID","tags":["Back Office - Vehicle Trips"]}},"/api/v1/internals/vehicle-trips/vehicle-user/{vehicleUserId}/total-vehicle-trip-statistic":{"get":{"operationId":"InternalsVehicleTripsController_getListPersPackage","parameters":[{"name":"vehicleUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"userId","in":"header","description":"User ID to call to this API","required":true,"schema":{"type":"string"}},{"name":"x-api-key","in":"header","description":"API key to allow other services in microservices can call API in this service","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get a total Vehicle Trips statistic successfully"},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Get a total Vehicle Trips statistic","tags":["Internals - Vehicle Trips"]}},"/api/v1/internals/vehicle-trips/trips-metrics":{"get":{"operationId":"InternalsVehicleTripsController_calculateVehicleTripMetrics","parameters":[{"name":"x-api-key","in":"header","description":"Internal service key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully calculated Alerts metrics.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RTDashboardTripDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Calculate Alerts Metrics","tags":["Internals - Vehicle Trips"]}},"/api/v1/internals/vehicle-trips/{userId}/vehicles":{"get":{"operationId":"InternalsVehicleTripsController_getVehicleFromTrips","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"sortBy","required":false,"in":"query","schema":{"type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"x-api-key","in":"header","description":"API key to allow other services in microservices to call API in this service","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get vehicle from trips successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVehicleFromTripResponseDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Get vehicle from trips","tags":["Internals - Vehicle Trips"]}},"/api/v1/internals/vehicle-trips/{userId}/statistics":{"get":{"operationId":"InternalsVehicleTripsController_getTripStatistics","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}},{"name":"period","required":false,"in":"query","schema":{"example":"week","type":"string"}},{"name":"timezone","required":false,"in":"query","schema":{"type":"string"}},{"name":"vehicle","required":false,"in":"query","schema":{"type":"string"}},{"name":"x-api-key","in":"header","description":"Internal service key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get trip statistics successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TripStatisticsResponseDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Get trip statistics","tags":["Internals - Vehicle Trips"]}},"/api/v1/internals/vehicle-trips/statistics-monthly-analysis":{"get":{"operationId":"InternalsVehicleTripsController_getStatisticsTripsMonthlyAnalysis","parameters":[{"name":"x-api-key","in":"header","description":"Internal service key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved monthly trips analysis statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonthlyDashboardDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Get trip monthly analysis statistics","tags":["Internals - Vehicle Trips"]}},"/api/v1/internals/vehicle-trips/vehicle-user/{vehicleUserId}/user":{"patch":{"operationId":"InternalsVehicleTripsController_updateUserByVehicleUserId","parameters":[{"name":"vehicleUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-api-key","in":"header","description":"Internal service key","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserByVehicleUserDTO"}}}},"responses":{"200":{"description":"User updated on Vehicle Trips and Pers Package Logs successfully"},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Update userId on existing VehicleTrip and PersPackageLog rows for a given vehicleUserId","tags":["Internals - Vehicle Trips"]}},"/api/v1/vehicle-trips":{"get":{"operationId":"VehicleTripsController_getListPersPackage","parameters":[{"name":"offset","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"sortBy","required":false,"in":"query","schema":{"type":"string"}},{"name":"vehicleUserId","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Get a list Vehicle Trips successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetListVehicleTripsDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"security":[{"bearer":[]}],"summary":"Get a list Vehicle Trips","tags":["Vehicle Trips"]}},"/api/v1/vehicle-trips/{vehicleTripId}":{"get":{"operationId":"VehicleTripsController_findById","parameters":[{"name":"vehicleTripId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Get Vehicle Trips By Id successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVehicleTripsDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"security":[{"bearer":[]}],"summary":"Get Vehicle Trips By Id","tags":["Vehicle Trips"]}},"/api/v1/journey-logs/simulator/template":{"get":{"description":"This endpoint provides a downloadable template for simulating PERS Journey Logs. It is used to format and define the structure of data when simulating PERS Journey Logs in the system.","operationId":"JourneyLogsSimulationsController_simulatorTemplate","parameters":[],"responses":{"200":{"description":"The simulator template file is returned successfully, allowing for the proper simulation of PERS Journey Logs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSimulatorTemplateDto"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Download PERS Journey Logs simulation template","tags":["Journey Logs Simulation"]}},"/api/v1/journey-logs/simulator/send":{"post":{"description":"This endpoint allows for the uploading of PERS journey logs in XLSX format. It processes the uploaded file to extract and analyze journey data.","operationId":"JourneyLogsSimulationsController_simulatorPersJourneyLogs","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The processing of the journey logs was successful, and relevant data has been extracted and analyzed."},"400":{"description":"Invalid file type was uploaded. Only XLSX files are allowed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSimulatorSendDTO"}}}},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Upload and Process PERS Journey Logs","tags":["Journey Logs Simulation"]}},"/api/v1/pers/comm-system-logs":{"post":{"operationId":"CommSystemLogController_storePersCommSystemLog","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorePersCommSystemLogDTO"}}}},"responses":{"204":{"description":"The log has been successfully created."},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Store pers communication system log","tags":["Comm System Logs"]}},"/api/v1/backoffice/pers/{persId}/comm-system-log":{"get":{"operationId":"CommSystemLogController_getListUserCommSystemLog","parameters":[{"name":"persId","required":true,"in":"path","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"sortBy","required":false,"in":"query","schema":{"type":"string"}},{"name":"name","required":false,"in":"query","schema":{"type":"string"}},{"name":"title","required":false,"in":"query","schema":{"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"enum":[1,2,3,9],"type":"number"}},{"name":"startDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"endDate","required":false,"in":"query","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"Get admin list pers comm system log by pers Id successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPersCommSystemLogDTO"}}}},"400":{"description":"Bad Request Error"},"401":{"description":"Unauthorized Error"},"403":{"description":"Forbidden Error"},"422":{"description":"Unprocessable Entity Error"},"500":{"description":"Internal Server Error"}},"summary":"Get admin list pers comm system log by pers Id","tags":["Comm System Logs"]}}},"info":{"title":"PERS Logs","description":"The PERS Logs API description","version":"0.0.1","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"VehicleUserDTO":{"type":"object","properties":{"id":{"type":"string"},"guestCodePin":{"type":"string"},"source":{"type":"array","items":{"type":"string"}},"dtBegin":{"type":"string"},"dtEnd":{"type":"string"}},"required":["id","guestCodePin","source","dtBegin","dtEnd"]},"VehicleTypeDTO":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","label","createdAt","updatedAt"]},"VehicleBrandDTO":{"type":"object","properties":{"id":{"type":"string"},"avatar":{"type":"string"},"name":{"type":"string"}},"required":["id","avatar","name"]},"VehicleModelDTO":{"type":"object","properties":{"id":{"type":"string"},"nameVehicleModel":{"type":"string"},"additionalInfo":{"type":"string"},"vehicleType":{"$ref":"#/components/schemas/VehicleTypeDTO"}},"required":["id","nameVehicleModel","additionalInfo","vehicleType"]},"VehicleDTO":{"type":"object","properties":{"id":{"type":"string"},"nameVehicle":{"type":"string"},"serialNumber":{"type":"string"},"registrationNumber":{"type":"string"},"odooVehicleId":{"type":"string"},"avatar":{"type":"string"},"vehicleType":{"$ref":"#/components/schemas/VehicleTypeDTO"},"brand":{"$ref":"#/components/schemas/VehicleBrandDTO"},"vehicleModel":{"$ref":"#/components/schemas/VehicleModelDTO"}},"required":["id","nameVehicle","serialNumber","registrationNumber","odooVehicleId","avatar","vehicleType","brand","vehicleModel"]},"UserDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"avatar":{"type":"string"}},"required":["id","name","email","avatar"]},"PersFrameTripLogDTO":{"type":"object","properties":{"id":{"type":"string"},"timestampFrame":{"format":"date-time","type":"string"},"vehicleSpeedCorrected":{"type":"number"},"vehiclePowerMechSmartMean":{"type":"number"},"persPowerDc":{"type":"number"},"persCadenceCorrected":{"type":"number"},"persPowerMechSmartMean":{"type":"number"},"batteryPower":{"type":"number"},"apsPowerEst":{"type":"number"},"powerLevel":{"type":"number"},"comfortLevel":{"type":"number"},"latitude":{"type":"number"},"longitude":{"type":"number"},"altitude":{"type":"number"},"nbSatellites":{"type":"number"},"timeRelatedPreviousFrame":{"type":"number"}},"required":["id","timestampFrame","vehicleSpeedCorrected","vehiclePowerMechSmartMean","persPowerDc","persCadenceCorrected","persPowerMechSmartMean","batteryPower","apsPowerEst","powerLevel","comfortLevel","latitude","longitude","altitude","nbSatellites","timeRelatedPreviousFrame"]},"PreferedPowerLevelDTO":{"type":"object","properties":{"powerLevel":{"type":"number"},"timePeriodPowerLevel":{"type":"number"},"preferredPowerLevel":{"type":"number"}},"required":["powerLevel","timePeriodPowerLevel","preferredPowerLevel"]},"PreferredComfortLevelDTO":{"type":"object","properties":{"comfortLevel":{"type":"number"},"timePeriodComfortLevel":{"type":"number"},"preferredComfortLevel":{"type":"number"}},"required":["comfortLevel","timePeriodComfortLevel","preferredComfortLevel"]},"BaseVehicleTripsDTO":{"type":"object","properties":{"id":{"type":"string"},"dtTripBegin":{"format":"date-time","type":"string"},"latitudeTripBegin":{"type":"number"},"longitudeTripBegin":{"type":"number"},"altitudeTripBegin":{"type":"number"},"dtTripEnd":{"format":"date-time","type":"string"},"latitudeTripEnd":{"type":"number"},"longitudeTripEnd":{"type":"number"},"altitudeTripEnd":{"type":"number"},"averagePedalingMechanicalPower":{"type":"number"},"pedalingElectricalEnergy":{"type":"number"},"batteryEnergy":{"type":"number"},"thirdpartyPowerSupplyEnergy":{"type":"number"},"regenerativeEnergy":{"type":"number"},"averageBatteryEffCapa":{"type":"number"},"pedalingElectricalEnergyContribution":{"type":"number"},"batteryEnergyContribution":{"type":"number"},"thirdpartyPowerSupplyEnergyContribution":{"type":"number"},"batteryRegeneratedEnergy":{"type":"number"},"distance":{"type":"number"},"duration":{"type":"number"},"pedalingDuration":{"type":"number"},"ridingDuration":{"type":"number"},"averageVehicleSpeed":{"type":"number"},"averagePersCadence":{"type":"number"},"statusVehicleTripId":{"type":"number"},"statusVehicleTripDate":{"format":"date-time","type":"string"},"reasonErrorVehicleTrip":{"type":"string"},"timezonePers":{"type":"string"},"preferedPowerLevel":{"type":"array","items":{"$ref":"#/components/schemas/PreferedPowerLevelDTO"}},"preferredComfortLevel":{"type":"array","items":{"$ref":"#/components/schemas/PreferredComfortLevelDTO"}}},"required":["id","dtTripBegin","latitudeTripBegin","longitudeTripBegin","altitudeTripBegin","dtTripEnd","latitudeTripEnd","longitudeTripEnd","altitudeTripEnd","averagePedalingMechanicalPower","pedalingElectricalEnergy","batteryEnergy","thirdpartyPowerSupplyEnergy","regenerativeEnergy","averageBatteryEffCapa","pedalingElectricalEnergyContribution","batteryEnergyContribution","thirdpartyPowerSupplyEnergyContribution","batteryRegeneratedEnergy","distance","duration","pedalingDuration","ridingDuration","averageVehicleSpeed","averagePersCadence","statusVehicleTripId","statusVehicleTripDate","reasonErrorVehicleTrip","timezonePers","preferedPowerLevel","preferredComfortLevel"]},"PersPackageLogDTO":{"type":"object","properties":{"id":{"type":"string"},"persPackageId":{"type":"string"},"firstTimestampFrame":{"format":"date-time","type":"string"},"lastTimestampFrame":{"format":"date-time","type":"string"},"persId":{"type":"string"},"vehicleId":{"type":"string"},"vehicleUserId":{"type":"string"},"userId":{"type":"string"},"lockStatus":{"type":"boolean"},"batterySoc":{"type":"number"},"batterySoh":{"type":"number"},"batteryVoltage":{"type":"number"},"batteryTemperature":{"type":"number"},"batteryChargingStatus":{"type":"boolean"},"batteryGridStatus":{"type":"boolean"},"rangeEstimation":{"type":"number"},"timeBeforeFullCharge":{"type":"number"},"batteryEfcCapa":{"type":"number"},"vehicleTotalKmStart":{"type":"number"},"vehicleTotalOperationTime":{"type":"number"},"latitude":{"type":"number"},"longitude":{"type":"number"},"altitude":{"type":"number"},"nbSatellites":{"type":"number"},"statusTripId":{"type":"number","enum":[1,2,3,4]},"dtStatusTrip":{"format":"date-time","type":"string"},"reasonStatusTrip":{"type":"string"},"timezonePers":{"type":"string"},"vehicleUser":{"$ref":"#/components/schemas/VehicleUserDTO"},"vehicle":{"$ref":"#/components/schemas/VehicleDTO"},"user":{"$ref":"#/components/schemas/UserDTO"},"persFrameTripLog":{"type":"array","items":{"$ref":"#/components/schemas/PersFrameTripLogDTO"}},"vehicleTrip":{"$ref":"#/components/schemas/BaseVehicleTripsDTO"}},"required":["id","persPackageId","firstTimestampFrame","lastTimestampFrame","persId","vehicleId","vehicleUserId","userId","lockStatus","batterySoc","batterySoh","batteryVoltage","batteryTemperature","batteryChargingStatus","batteryGridStatus","rangeEstimation","timeBeforeFullCharge","batteryEfcCapa","vehicleTotalKmStart","vehicleTotalOperationTime","latitude","longitude","altitude","nbSatellites","statusTripId","dtStatusTrip","reasonStatusTrip","timezonePers","vehicleUser","vehicle","user","persFrameTripLog","vehicleTrip"]},"PerPackageDTO":{"type":"object","properties":{"id":{"type":"string"},"packageId":{"type":"number"},"timestampPackage":{"format":"date-time","type":"string"},"dtReception":{"format":"date-time","type":"string"},"timezonePers":{"type":"string"},"vehicleUserId":{"type":"string"},"vehicle":{"type":"object"},"user":{"type":"object"},"persId":{"type":"string"},"persSerialNumber":{"type":"string"},"totalLinesPackage":{"type":"number"},"previousIdPackage":{"type":"number"},"statusReception":{"type":"number","enum":[1,2]},"statusAnalyzed":{"type":"number","enum":[1,2,3]},"persPackageLog":{"$ref":"#/components/schemas/PersPackageLogDTO"}},"required":["id","packageId","timestampPackage","dtReception","timezonePers","vehicleUserId","vehicle","user","persId","persSerialNumber","totalLinesPackage","previousIdPackage","statusReception","statusAnalyzed","persPackageLog"]},"PersPackageResponseDTO":{"type":"object","properties":{"success":{"type":"boolean"},"persPackageDTO":{"$ref":"#/components/schemas/PerPackageDTO"}},"required":["success","persPackageDTO"]},"PackageHeaderDTO":{"type":"object","properties":{"packageId":{"type":"integer","description":"ID of the Package as uint32 integer, strictly increasing per PERS","example":1780988767},"vehicleUserId":{"type":"string","description":"UUID of the VehicleUser","example":"123e4567-e89b-12d3-a456-426614174000"},"timestampPackage":{"format":"date-time","type":"string","description":"ISO 8601 date string","example":"2025-06-01 13:00:00"},"totalLinesPackage":{"type":"number"},"previousIdPackage":{"type":"integer","example":1780988766}},"required":["packageId","vehicleUserId","timestampPackage","totalLinesPackage"]},"PackageLogDTO":{"type":"object","properties":{"lockStatus":{"type":"boolean"},"batterySoc":{"type":"number"},"batterySoh":{"type":"number"},"batteryVoltage":{"type":"number"},"batteryTemperature":{"type":"number"},"batteryChargingStatus":{"type":"boolean"},"batteryGridStatus":{"type":"boolean"},"rangeEstimation":{"type":"number"},"timeBeforeFullCharge":{"type":"number"},"batteryEfcCapa":{"type":"number"},"vehicleTotalKmStart":{"type":"number"},"vehicleTotalKmEnd":{"type":"number"},"vehicleTotalOperationTime":{"type":"number"},"latitude":{"type":"number"},"longitude":{"type":"number"},"altitude":{"type":"number"},"nbSatellites":{"type":"number"}},"required":["lockStatus","batterySoc","batterySoh","batteryVoltage","batteryTemperature","batteryChargingStatus","batteryGridStatus","rangeEstimation","timeBeforeFullCharge","batteryEfcCapa","vehicleTotalKmStart","vehicleTotalKmEnd","vehicleTotalOperationTime"]},"TripLogsDTO":{"type":"object","properties":{"timestampFrame":{"format":"date-time","type":"string","description":"UTC timestamp of the trip log frame, ISO 8601","example":"2026-06-05T09:00:00.000Z"},"vehicleSpeedCorrected":{"type":"number"},"vehiclePowerMechSmartMean":{"type":"number"},"persPowerDc":{"type":"number"},"persCadenceCorrected":{"type":"number"},"persPowerMechSmartMean":{"type":"number"},"batteryPower":{"type":"number"},"apsPowerEst":{"type":"number"},"powerLevel":{"type":"number"},"comfortLevel":{"type":"number"},"latitude":{"type":"number"},"longitude":{"type":"number"},"altitude":{"type":"number"},"nbSatellites":{"type":"number"}},"required":["timestampFrame","vehicleSpeedCorrected","vehiclePowerMechSmartMean","persPowerDc","persCadenceCorrected","persPowerMechSmartMean","batteryPower","apsPowerEst","powerLevel","comfortLevel"]},"PackageDTO":{"type":"object","properties":{"packageHeader":{"$ref":"#/components/schemas/PackageHeaderDTO"},"packageLog":{"$ref":"#/components/schemas/PackageLogDTO"},"tripLogs":{"type":"array","items":{"$ref":"#/components/schemas/TripLogsDTO"}}},"required":["packageHeader","packageLog","tripLogs"]},"ReceptionPersPackagesDTO":{"type":"object","properties":{"persSerialNumber":{"type":"string"},"listOfPackages":{"type":"array","items":{"$ref":"#/components/schemas/PackageDTO"}}},"required":["persSerialNumber","listOfPackages"]},"ResponseReceptionPersPackagesDTO":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"]},"MetaResponseDTO":{"type":"object","properties":{"offset":{"type":"number"},"totalItems":{"type":"number"},"itemCount":{"type":"number"},"itemsPerPage":{"type":"number"},"totalPages":{"type":"number"},"currentPage":{"type":"number"}},"required":["offset","totalItems","itemCount","itemsPerPage","totalPages","currentPage"]},"LinkResponseDTO":{"type":"object","properties":{"first":{"type":"string"},"previous":{"type":"string"},"next":{"type":"string"},"last":{"type":"string"}},"required":["first","previous","next","last"]},"ListPersPackageLogDTO":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/MetaResponseDTO"},"links":{"$ref":"#/components/schemas/LinkResponseDTO"},"items":{"type":"array","items":{"$ref":"#/components/schemas/PersPackageLogDTO"}}},"required":["meta","links","items"]},"AdminListVehicleTripsDTO":{"type":"object","properties":{"id":{"type":"string"},"dtTripBegin":{"format":"date-time","type":"string"},"dtTripEnd":{"format":"date-time","type":"string"},"userName":{"type":"string"},"distance":{"type":"number"},"duration":{"type":"number"},"pedalingDuration":{"type":"number"},"ridingDuration":{"type":"number"},"averageVehicleSpeed":{"type":"number"},"averagePedalingMechanicalPower":{"type":"number"},"statusVehicleTripId":{"type":"number"},"statusVehicleTripDate":{"format":"date-time","type":"string"},"reasonErrorVehicleTrip":{"type":"string"},"timezonePers":{"type":"string"}},"required":["id","dtTripBegin","dtTripEnd","userName","distance","duration","pedalingDuration","ridingDuration","averageVehicleSpeed","averagePedalingMechanicalPower","statusVehicleTripId","statusVehicleTripDate","reasonErrorVehicleTrip","timezonePers"]},"GetAdminListVehicleTripsDTO":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/MetaResponseDTO"},"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminListVehicleTripsDTO"}}},"required":["meta","items"]},"GeolocationDTO":{"type":"object","properties":{"positionDate":{"format":"date-time","type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"altitude":{"type":"number"},"nbSatellites":{"type":"number"}},"required":["positionDate","latitude","longitude","altitude","nbSatellites"]},"AdminVehicleTripsDTO":{"type":"object","properties":{"id":{"type":"string"},"dtTripBegin":{"format":"date-time","type":"string"},"latitudeTripBegin":{"type":"number"},"longitudeTripBegin":{"type":"number"},"altitudeTripBegin":{"type":"number"},"dtTripEnd":{"format":"date-time","type":"string"},"latitudeTripEnd":{"type":"number"},"longitudeTripEnd":{"type":"number"},"altitudeTripEnd":{"type":"number"},"averagePedalingMechanicalPower":{"type":"number"},"pedalingElectricalEnergy":{"type":"number"},"batteryEnergy":{"type":"number"},"thirdpartyPowerSupplyEnergy":{"type":"number"},"regenerativeEnergy":{"type":"number"},"averageBatteryEffCapa":{"type":"number"},"pedalingElectricalEnergyContribution":{"type":"number"},"batteryEnergyContribution":{"type":"number"},"thirdpartyPowerSupplyEnergyContribution":{"type":"number"},"batteryRegeneratedEnergy":{"type":"number"},"distance":{"type":"number"},"duration":{"type":"number"},"pedalingDuration":{"type":"number"},"ridingDuration":{"type":"number"},"averageVehicleSpeed":{"type":"number"},"averagePersCadence":{"type":"number"},"statusVehicleTripId":{"type":"number"},"statusVehicleTripDate":{"format":"date-time","type":"string"},"reasonErrorVehicleTrip":{"type":"string"},"timezonePers":{"type":"string"},"preferedPowerLevel":{"type":"array","items":{"$ref":"#/components/schemas/PreferedPowerLevelDTO"}},"preferredComfortLevel":{"type":"array","items":{"$ref":"#/components/schemas/PreferredComfortLevelDTO"}},"persId":{"type":"string"},"vehicle":{"$ref":"#/components/schemas/VehicleDTO"},"vehicleUserId":{"type":"string"},"userId":{"type":"string"},"userName":{"type":"string"},"geolocation":{"type":"array","items":{"$ref":"#/components/schemas/GeolocationDTO"}}},"required":["id","dtTripBegin","latitudeTripBegin","longitudeTripBegin","altitudeTripBegin","dtTripEnd","latitudeTripEnd","longitudeTripEnd","altitudeTripEnd","averagePedalingMechanicalPower","pedalingElectricalEnergy","batteryEnergy","thirdpartyPowerSupplyEnergy","regenerativeEnergy","averageBatteryEffCapa","pedalingElectricalEnergyContribution","batteryEnergyContribution","thirdpartyPowerSupplyEnergyContribution","batteryRegeneratedEnergy","distance","duration","pedalingDuration","ridingDuration","averageVehicleSpeed","averagePersCadence","statusVehicleTripId","statusVehicleTripDate","reasonErrorVehicleTrip","timezonePers","preferedPowerLevel","preferredComfortLevel","persId","vehicle","vehicleUserId","userId","userName","geolocation"]},"RTTripDTO":{"type":"object","properties":{"nbTrips":{"type":"number"},"nbKmDone":{"type":"number"}},"required":["nbTrips","nbKmDone"]},"RTDashboardTripDTO":{"type":"object","properties":{"success":{"type":"boolean"},"trips":{"$ref":"#/components/schemas/RTTripDTO"}},"required":["success","trips"]},"PeriodDTO":{"type":"object","properties":{"week":{"type":"array","items":{"type":"string"}},"month":{"type":"array","items":{"type":"string"}},"year":{"type":"array","items":{"type":"string"}},"global":{"type":"array","items":{"type":"string"}}}},"GetVehicleFromTripResponseDTO":{"type":"object","properties":{"success":{"type":"boolean"},"vehicles":{"$ref":"#/components/schemas/PeriodDTO"}},"required":["success"]},"EnergyContributionDTO":{"type":"object","properties":{"riderInput":{"type":"number"},"vehicleInput":{"type":"number"}}},"TripStatisticsDTO":{"type":"object","properties":{"totalDistanceTravelled":{"type":"number"},"averageDistanceOnTrip":{"type":"number"},"totalRidingDuration":{"type":"number"},"totalPedalingDuration":{"type":"number"},"numberOfRides":{"type":"number"},"preferredComfortLevel":{"type":"number"},"preferredPowerLevel":{"type":"number"},"averagePedalingPower":{"type":"number"},"averageEnergyContribution":{"$ref":"#/components/schemas/EnergyContributionDTO"},"averageSpeed":{"type":"number"},"totalEnergyFromRegen":{"type":"number"},"averageRechargedByRegenOnTrip":{"type":"number"},"averageCadence":{"type":"number"}}},"TripStatisticsResponseDTO":{"type":"object","properties":{"success":{"type":"boolean"},"tripStatistics":{"$ref":"#/components/schemas/TripStatisticsDTO"}},"required":["success"]},"MonthlyDashboardItemDTO":{"type":"object","properties":{"month":{"type":"string"},"nbTrips":{"type":"number"},"nbKms":{"type":"number"}},"required":["month","nbTrips","nbKms"]},"MonthlyDashboardDTO":{"type":"object","properties":{"success":{"type":"boolean"},"statistics":{"type":"array","items":{"$ref":"#/components/schemas/MonthlyDashboardItemDTO"}}},"required":["success","statistics"]},"UpdateUserByVehicleUserDTO":{"type":"object","properties":{"userId":{"type":"string"}},"required":["userId"]},"PersFirmwareVersionDTO":{"type":"object","properties":{"id":{"type":"string"},"firmwareVersion":{"type":"string"}},"required":["id","firmwareVersion"]},"PersDTO":{"type":"object","properties":{"id":{"type":"string"},"nuSerialPersNumber":{"type":"string"},"modelPERSId":{"type":"string"},"softwarePERSId":{"type":"string"},"firmwareVersion":{"$ref":"#/components/schemas/PersFirmwareVersionDTO"}},"required":["id","nuSerialPersNumber","modelPERSId","softwarePERSId","firmwareVersion"]},"ListVehicleTripsDTO":{"type":"object","properties":{"id":{"type":"string"},"dtTripBegin":{"format":"date-time","type":"string"},"latitudeTripBegin":{"type":"number"},"longitudeTripBegin":{"type":"number"},"altitudeTripBegin":{"type":"number"},"dtTripEnd":{"format":"date-time","type":"string"},"latitudeTripEnd":{"type":"number"},"longitudeTripEnd":{"type":"number"},"altitudeTripEnd":{"type":"number"},"averagePedalingMechanicalPower":{"type":"number"},"pedalingElectricalEnergy":{"type":"number"},"batteryEnergy":{"type":"number"},"thirdpartyPowerSupplyEnergy":{"type":"number"},"regenerativeEnergy":{"type":"number"},"averageBatteryEffCapa":{"type":"number"},"pedalingElectricalEnergyContribution":{"type":"number"},"batteryEnergyContribution":{"type":"number"},"thirdpartyPowerSupplyEnergyContribution":{"type":"number"},"batteryRegeneratedEnergy":{"type":"number"},"distance":{"type":"number"},"duration":{"type":"number"},"pedalingDuration":{"type":"number"},"ridingDuration":{"type":"number"},"averageVehicleSpeed":{"type":"number"},"averagePersCadence":{"type":"number"},"statusVehicleTripId":{"type":"number"},"statusVehicleTripDate":{"format":"date-time","type":"string"},"reasonErrorVehicleTrip":{"type":"string"},"timezonePers":{"type":"string"},"preferedPowerLevel":{"type":"array","items":{"$ref":"#/components/schemas/PreferedPowerLevelDTO"}},"preferredComfortLevel":{"type":"array","items":{"$ref":"#/components/schemas/PreferredComfortLevelDTO"}},"pers":{"$ref":"#/components/schemas/PersDTO"},"vehicle":{"$ref":"#/components/schemas/VehicleDTO"},"vehicleUser":{"$ref":"#/components/schemas/VehicleUserDTO"},"user":{"$ref":"#/components/schemas/UserDTO"}},"required":["id","dtTripBegin","latitudeTripBegin","longitudeTripBegin","altitudeTripBegin","dtTripEnd","latitudeTripEnd","longitudeTripEnd","altitudeTripEnd","averagePedalingMechanicalPower","pedalingElectricalEnergy","batteryEnergy","thirdpartyPowerSupplyEnergy","regenerativeEnergy","averageBatteryEffCapa","pedalingElectricalEnergyContribution","batteryEnergyContribution","thirdpartyPowerSupplyEnergyContribution","batteryRegeneratedEnergy","distance","duration","pedalingDuration","ridingDuration","averageVehicleSpeed","averagePersCadence","statusVehicleTripId","statusVehicleTripDate","reasonErrorVehicleTrip","timezonePers","preferedPowerLevel","preferredComfortLevel","pers","vehicle","vehicleUser","user"]},"GetListVehicleTripsDTO":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/MetaResponseDTO"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ListVehicleTripsDTO"}}},"required":["meta","items"]},"GetVehicleTripsDTO":{"type":"object","properties":{"id":{"type":"string"},"dtTripBegin":{"format":"date-time","type":"string"},"latitudeTripBegin":{"type":"number"},"longitudeTripBegin":{"type":"number"},"altitudeTripBegin":{"type":"number"},"dtTripEnd":{"format":"date-time","type":"string"},"latitudeTripEnd":{"type":"number"},"longitudeTripEnd":{"type":"number"},"altitudeTripEnd":{"type":"number"},"averagePedalingMechanicalPower":{"type":"number"},"pedalingElectricalEnergy":{"type":"number"},"batteryEnergy":{"type":"number"},"thirdpartyPowerSupplyEnergy":{"type":"number"},"regenerativeEnergy":{"type":"number"},"averageBatteryEffCapa":{"type":"number"},"pedalingElectricalEnergyContribution":{"type":"number"},"batteryEnergyContribution":{"type":"number"},"thirdpartyPowerSupplyEnergyContribution":{"type":"number"},"batteryRegeneratedEnergy":{"type":"number"},"distance":{"type":"number"},"duration":{"type":"number"},"pedalingDuration":{"type":"number"},"ridingDuration":{"type":"number"},"averageVehicleSpeed":{"type":"number"},"averagePersCadence":{"type":"number"},"statusVehicleTripId":{"type":"number"},"statusVehicleTripDate":{"format":"date-time","type":"string"},"reasonErrorVehicleTrip":{"type":"string"},"timezonePers":{"type":"string"},"preferedPowerLevel":{"type":"array","items":{"$ref":"#/components/schemas/PreferedPowerLevelDTO"}},"preferredComfortLevel":{"type":"array","items":{"$ref":"#/components/schemas/PreferredComfortLevelDTO"}},"pers":{"$ref":"#/components/schemas/PersDTO"},"vehicle":{"$ref":"#/components/schemas/VehicleDTO"},"vehicleUser":{"$ref":"#/components/schemas/VehicleUserDTO"},"user":{"$ref":"#/components/schemas/UserDTO"},"geolocation":{"type":"array","items":{"$ref":"#/components/schemas/GeolocationDTO"}}},"required":["id","dtTripBegin","latitudeTripBegin","longitudeTripBegin","altitudeTripBegin","dtTripEnd","latitudeTripEnd","longitudeTripEnd","altitudeTripEnd","averagePedalingMechanicalPower","pedalingElectricalEnergy","batteryEnergy","thirdpartyPowerSupplyEnergy","regenerativeEnergy","averageBatteryEffCapa","pedalingElectricalEnergyContribution","batteryEnergyContribution","thirdpartyPowerSupplyEnergyContribution","batteryRegeneratedEnergy","distance","duration","pedalingDuration","ridingDuration","averageVehicleSpeed","averagePersCadence","statusVehicleTripId","statusVehicleTripDate","reasonErrorVehicleTrip","timezonePers","preferedPowerLevel","preferredComfortLevel","pers","vehicle","vehicleUser","user","geolocation"]},"ResponseSimulatorTemplateDto":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"ResponseSimulatorSendDTO":{"type":"object","properties":{"nbLinesRead":{"type":"number"},"nbPackagesFound":{"type":"number"},"nbPackagesAccepted":{"type":"number"},"nbPackagesRejected":{"type":"number"},"listOfErrors":{"type":"array","items":{"type":"string"}}},"required":["nbLinesRead","nbPackagesFound","nbPackagesAccepted","nbPackagesRejected","listOfErrors"]},"CommSystemLogForPersDTO":{"type":"object","properties":{"vehicleUserId":{"type":"string"},"commSystemLogDate":{"format":"date-time","type":"string"},"timezoneCommSystemLog":{"type":"string"},"titleCommSystemLog":{"type":"string"},"contentCommSystemLog":{"type":"string"},"statusExecutionId":{"type":"number","enum":[1,2,3]},"errorCommSystemLog":{"type":"string"},"typeCommSystemLog":{"type":"number","enum":[1,2,3,9]}},"required":["vehicleUserId","commSystemLogDate","timezoneCommSystemLog","titleCommSystemLog","contentCommSystemLog","statusExecutionId","errorCommSystemLog","typeCommSystemLog"]},"StorePersCommSystemLogDTO":{"type":"object","properties":{"persSerialNumber":{"type":"string"},"commSystemLogs":{"type":"array","items":{"$ref":"#/components/schemas/CommSystemLogForPersDTO"}}},"required":["persSerialNumber","commSystemLogs"]},"PersDataCommSystemLogDTO":{"type":"object","properties":{"id":{"type":"string"},"nameBLE":{"type":"string"},"pinBLE":{"type":"string"},"nuSerialPersNumber":{"type":"string"}},"required":["id","nameBLE","pinBLE","nuSerialPersNumber"]},"PersCommSystemLogDTO":{"type":"object","properties":{"id":{"type":"string"},"timezoneCommSystemLog":{"type":"string"},"dtCommSystemLogConverted":{"format":"date-time","type":"string"},"typeCommSystemLog":{"type":"number","enum":[1,2,3,9]},"titleCommSystemLog":{"type":"string"},"contentCommSystemLog":{"type":"string"},"statusExecutionId":{"type":"number","enum":[1,2,3]},"errorCommSystemLog":{"type":"string"},"dtReception":{"format":"date-time","type":"string"},"status":{"type":"number","enum":[1,2,3]},"dtStatus":{"format":"date-time","type":"string"},"reasonErrorStatus":{"type":"string"},"pers":{"$ref":"#/components/schemas/PersDataCommSystemLogDTO"},"vehicle":{"$ref":"#/components/schemas/VehicleDTO"},"user":{"$ref":"#/components/schemas/UserDTO"},"updatedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"}},"required":["id","timezoneCommSystemLog","dtCommSystemLogConverted","typeCommSystemLog","titleCommSystemLog","contentCommSystemLog","statusExecutionId","errorCommSystemLog","dtReception","status","dtStatus","reasonErrorStatus","pers","vehicle","user","updatedAt","createdAt"]},"ListPersCommSystemLogDTO":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/MetaResponseDTO"},"links":{"$ref":"#/components/schemas/LinkResponseDTO"},"items":{"type":"array","items":{"$ref":"#/components/schemas/PersCommSystemLogDTO"}}},"required":["meta","links","items"]}}}}