feat(provider): add Gelios unit profile product

This commit is contained in:
Codex
2026-07-22 23:36:57 +03:00
parent 2def90fa33
commit e843bbda66
10 changed files with 486 additions and 11 deletions
@@ -0,0 +1,73 @@
{
"id": "fleet.units.profile.current.v1",
"version": "1.0.0",
"ontologyRevision": "ontology.map.moving_object.v3",
"deliveryMode": "snapshot+patch",
"semanticTypes": [
"map.moving_object"
],
"fields": [
"corrected_engine_hours_factor",
"corrected_mileage_factor",
"display_name",
"filter_by_satellite_count_enabled",
"filter_by_satellite_count_value",
"filter_emissions",
"hardware_manufacturer_name",
"hardware_port",
"hardware_type_class",
"hardware_type_name",
"limit_acceleration",
"lost_connection_enabled",
"lost_connection_time_value",
"maximum_permissible_speed",
"maximum_valid_height",
"maximum_valid_speed",
"mileage_by_ignition",
"minimum_movement_speed",
"minimum_movement_time",
"minimum_parking_time",
"minimum_stop_time",
"minimum_trip_distance",
"minimum_valid_height",
"speed_parameter",
"trip_detection_type",
"unit_type_class",
"unit_type_name",
"use_odometer"
],
"fieldContracts": {
"corrected_engine_hours_factor": { "type": "number", "required": false },
"corrected_mileage_factor": { "type": "number", "required": false },
"display_name": { "type": "string", "required": true },
"filter_by_satellite_count_enabled": { "type": "boolean", "required": false },
"filter_by_satellite_count_value": { "type": "number", "required": false, "minimum": 0 },
"filter_emissions": { "type": "number", "required": false, "minimum": 0 },
"hardware_manufacturer_name": { "type": "string", "required": false },
"hardware_port": { "type": "number", "required": false, "minimum": 0 },
"hardware_type_class": { "type": "string", "required": false },
"hardware_type_name": { "type": "string", "required": false },
"limit_acceleration": { "type": "number", "required": false, "minimum": 0 },
"lost_connection_enabled": { "type": "boolean", "required": false },
"lost_connection_time_value": { "type": "number", "required": false, "minimum": 0 },
"maximum_permissible_speed": { "type": "number", "required": false, "minimum": 0 },
"maximum_valid_height": { "type": "number", "required": false },
"maximum_valid_speed": { "type": "number", "required": false, "minimum": 0 },
"mileage_by_ignition": { "type": "boolean", "required": false },
"minimum_movement_speed": { "type": "number", "required": false, "minimum": 0 },
"minimum_movement_time": { "type": "number", "required": false, "minimum": 0 },
"minimum_parking_time": { "type": "number", "required": false, "minimum": 0 },
"minimum_stop_time": { "type": "number", "required": false, "minimum": 0 },
"minimum_trip_distance": { "type": "number", "required": false, "minimum": 0 },
"minimum_valid_height": { "type": "number", "required": false },
"speed_parameter": { "type": "string", "required": false },
"trip_detection_type": { "type": "string", "required": false },
"unit_type_class": { "type": "string", "required": false },
"unit_type_name": { "type": "string", "required": false },
"use_odometer": { "type": "boolean", "required": false }
},
"history": {
"mode": "none",
"retentionDays": 1
}
}
@@ -12,6 +12,7 @@ assert.deepEqual(bundled.map((definition) => definition.id), [
"fleet.positions.current.v3",
"fleet.positions.current.v4",
"fleet.positions.current.v5",
"fleet.units.profile.current.v1",
"map.zones.current.v1",
"map.zones.current.v2",
]);
@@ -52,19 +53,25 @@ assert.equal(bundled[4].version, "5.0.0");
assert.equal(bundled[4].ontologyRevision, "ontology.map.moving_object.v3");
assert.equal(bundled[4].fieldContracts.sensor_readings.type, "telemetry_readings");
assert.equal(bundled[5].version, "1.0.0");
assert.equal(bundled[5].ontologyRevision, "ontology.map.zone.v1");
assert.deepEqual(bundled[5].semanticTypes, ["map.zone"]);
assert.deepEqual(bundled[5].fieldContracts.geometry, { type: "geometry", required: true });
assert.equal(bundled[5].fields.includes("dataset_authority"), false);
assert.equal(bundled[6].version, "2.0.0");
assert.equal(bundled[5].ontologyRevision, "ontology.map.moving_object.v3");
assert.deepEqual(bundled[5].semanticTypes, ["map.moving_object"]);
assert.equal(bundled[5].history.mode, "none");
assert.equal(bundled[5].fieldContracts.hardware_port.type, "number");
assert.equal(bundled[6].version, "1.0.0");
assert.equal(bundled[6].ontologyRevision, "ontology.map.zone.v1");
assert.deepEqual(bundled[6].semanticTypes, ["map.zone"]);
assert.deepEqual(bundled[6].fieldContracts.geometry, { type: "geometry", required: true });
assert.deepEqual(bundled[6].fieldContracts.dataset_authority.enum, ["moscow-department-of-transport"]);
assert.equal(bundled[6].fields.includes("dataset_authority"), false);
assert.equal(bundled[7].version, "2.0.0");
assert.equal(bundled[7].ontologyRevision, "ontology.map.zone.v1");
assert.deepEqual(bundled[7].semanticTypes, ["map.zone"]);
assert.deepEqual(bundled[7].fieldContracts.geometry, { type: "geometry", required: true });
assert.deepEqual(bundled[7].fieldContracts.dataset_authority.enum, ["moscow-department-of-transport"]);
assert.equal(Object.keys(bundled[3].fieldContracts).length, bundled[3].fields.length);
assert.equal(Object.keys(bundled[4].fieldContracts).length, bundled[4].fields.length);
assert.equal(Object.keys(bundled[5].fieldContracts).length, bundled[5].fields.length);
assert.equal(Object.keys(bundled[6].fieldContracts).length, bundled[6].fields.length);
assert.equal(Object.keys(bundled[7].fieldContracts).length, bundled[7].fields.length);
const directory = await mkdtemp(join(tmpdir(), "nodedc-edp-definitions-"));
try {