package com.css.simulation.resource.scheduler.infra.entity;

import com.css.simulation.resource.scheduler.app.entity.VehicleEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * {
 *     "info": {
 *         "project_id": 766,
 *         "task_id": 2789,
 *         "task_path": "jobs/RT_EY%402022-01-25_13%3A57%3A30_1643090250/SharingVan_20220125_0",
 *         "default_time": 30
 *     },
 *     "scenario": {
 *         "scenario_osc": "scenarios/SharingVAN_20220125/SharingVAN.xml",
 *         "scenario_odr": "scenarios/SharingVAN_20220125/Road_DFMC.xodr",
 *         "scenario_osgb": "scenarios/SharingVAN_20220125/Road_DFMC.opt.osgb"
 *     },
 *     "vehicle":{
 * 		"model": {
 * 			"model_label": "AudiA6_10"
 *                },
 * 		"dynamics": {
 * 			"dynamics_maxspeed": 67,
 * 			"dynamics_enginepower": 150000,
 * 			"dynamics_maxdecel": 9.5,
 * 			"dynamics_maxsteering": 0.48,
 * 			"dynamics_mass": 1700,
 * 			"dynamics_frontsurfaceeffective": 2.2,
 * 			"dynamics_airdragcoefficient": 0.31,
 * 			"dynamics_rollingresistance": 0,
 * 			"dynamics_wheeldiameter": 0.684,
 * 			"dynamics_wheeldrive": "wheel_drive_front",
 * 			"dynamics_overallefficiency": 0.75,
 * 			"dynamics_distfront": 3.838,
 * 			"dynamics_distrear": 1.086,
 * 			"dynamics_distleft": 0.94,
 * 			"dynamics_distright": 0.94,
 * 			"dynamics_distheight": 1.444,
 * 			"dynamics_wheelbase": 2.91
 *        },
 * 		"sensors": {
 * 			"camera": [
 *                {
 * 					"sensor_name": "following_view_camera",
 * 					"sensor_fovH": 45,
 * 					"sensor_fovV": 27,
 * 					"sensor_near": 1,
 * 					"sensor_far": 1500,
 * 					"sensor_resolution": "800x600",
 * 					"sensor_frameRate": 60,
 * 					"sensor_x": -15,
 * 					"sensor_y": 0,
 * 					"sensor_z": 5,
 * 					"sensor_h": 0,
 * 					"sensor_p": 10,
 * 					"sensor_r": 0
 *                },
 *                {
 * 					"sensor_name": "plan_view_camera",
 * 					"sensor_fovH": 45,
 * 					"sensor_fovV": 27,
 * 					"sensor_near": 1,
 * 					"sensor_far": 1500,
 * 					"sensor_resolution": "800x600",
 * 					"sensor_frameRate": 60,
 * 					"sensor_x": 35,
 * 					"sensor_y": 0,
 * 					"sensor_z": 200,
 * 					"sensor_h": 0,
 * 					"sensor_p": 90,
 * 					"sensor_r": 0
 *                }
 * 			],
 * 			"OGT": [
 *                {
 * 					"sensor_name": "360_perfect_sensor",
 * 					"sensor_fovH": 360,
 * 					"sensor_fovV": 20,
 * 					"sensor_near": 0,
 * 					"sensor_far": 100,
 * 					"sensor_x": 0,
 * 					"sensor_y": 0,
 * 					"sensor_z": 1.7,
 * 					"sensor_h": 0,
 * 					"sensor_p": 0,
 * 					"sensor_r": 0,
 * 					"sensor_filter": [0,1,5],
 * 					"sensor_display": true,
 * 					"sensor_maxObjects": 10,
 * 					"sensor_port": 10
 *                },
 *                {
 * 					"sensor_name": "120_perfect_sensor",
 * 					"sensor_fovH": 120,
 * 					"sensor_fovV": 20,
 * 					"sensor_near": 0,
 * 					"sensor_far": 100,
 * 					"sensor_x": 0,
 * 					"sensor_y": 0,
 * 					"sensor_z": 1.7,
 * 					"sensor_h": 0,
 * 					"sensor_p": 0,
 * 					"sensor_r": 0,
 * 					"sensor_filter": [0,1,5],
 * 					"sensor_display": true,
 * 					"sensor_maxObjects": 10,
 * 					"sensor_port": 10
 *                }
 * 			]
 *        }* 	}
 * }
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TaskMessageEntity {

    private InfoEntity info;
    private ScenarioEntity scenario;
    private VehicleEntity vehicle;

}
