<?php


namespace common\util;

use common\models\AccidentCases;

/**
 * Class AccidentCasesObj
 * @package common\util
 * @property int $id
 * @property string|null $title 案例名称
 * @property int|null $level 事件性质（等级）
 * @property array|null $type_base 事件类型—基本选项
 * @property array|null $type_first 事件类型-一级字段
 * @property array|null $type_second 事件类型-二级字段
 * @property array|null $type_third 事件类型-三级字段
 * @property array|null $type_extra 事件类型—复合选项
 * @property array $duty_category 责任专业—事件归因
 * @property array $duty_reason 责任专业—原因
 * @property int|null $start_time 发生时间（具体日期、时间）
 * @property int|null $elimination_time 故障/外部影响消除时间
 * @property int|null $recovery_time 运营基本恢复时间
 * @property int|null $day_type 日期特征
 * @property int|null $time_type 时间特征
 * @property int|null $line 所属线路
 * @property int|null $automation_level 自动化程度
 * @property int|null $signal_supplier 信号供应商
 * @property int|null $train_number 车号
 * @property int|null $train_group 列车编组
 * @property int|null $train_model 列车型号
 * @property string|null $position_start 车站进站位置（起始位置）
 * @property string|null $position_end 车站进站位置（终止位置）
 * @property int|null $no_parking_area 车站进站位置（终止位置）
 * @property string|null $position_no_parking_area 车站进站位置（终止位置）
 * @property string|null $position 发生位置
 * @property string $position_base_first 发生位置-基本分类
 * @property int|null $position_base_second 发生位置-基本分类-二级字段
 * @property int|null $position_extra_first 发生位置-派生
 * @property int|null $position_extra_second 发生位置-派生-二级字段
 * @property int|null $substation_type 变电站类型
 * @property int|null $headway 行车间隔
 * @property int|null $online_trains_number 在线列车数
 * @property int|null $incidence 影响范围
 * @property int|null $affect_trains_number 直接影响列车数
 * @property int|null $emergency_duration 故障持续时长
 * @property int|null $operation_duration 运营事件持续时长(分钟)
 * @property int|null $maximum_delay 最大晚点
 * @property int|null $train_delayed_two_minutes 2分钟晚点列次
 * @property int|null $train_delayed_five_minutes 5分钟晚点列次
 * @property int|null $get_off_trains_number 清客列次
 * @property int|null $skip_stop_trains_number 跳停列次
 * @property int|null $handle_person_dispatch    路网调度
 * @property int|null $handle_person_leader 班组长(1人)
 * @property int|null $handle_person_principal 运营正职(1人)
 * @property int|null $handle_person_principal_device 设备正职(1人)
 * @property int|null $handle_person_deputy 运营副职(可多人)
 * @property int|null $handle_person_deputy_device 设备副职(可多人)
 * @property int|null $command_area 指挥区域
 * @property int|null $team_serial_number 班组序号
 * @property int|null $delete_time 数据删除时间
 * @property string|null $images 事件图片（封面图片）
 * @property string|null $images_add 事件图片（额外）
 * @property string|null $images_duibi 事件图片（对比）
 * @property int $status 事件图片（对比）
 * @property AccidentCasesScoreObj $totalScore 总分
 * @property String create_by 创建人工号
 * @property String create_name 创建人姓名
 * @property String create_remark 创建人备注
 * @property array check_list 可审核人列表 默认为空则所有审核人都能看到，不为空则只有指定人可以审核
 * @property array check_name_list  可审核人姓名列表
 * @property String check_by  审核人
 * @property String check_name  审核人姓名
 * @property String check_remark  审核人备注
 */
class AccidentCasesObj
{
    public int $id;
    public string $title;
    public int $level;
    public array $type_base;
    public array $type_first;
    public array $type_second;
    public array $type_third;
    public array $type_extra;
    public array $duty_category;
    public array $duty_reason;
    public int $start_time;
    public int $elimination_time;
    public int $recovery_time;
    public int $day_type;
    public int $time_type;
    public int $line;
    public int|null $automation_level;
    public int|null $signal_supplier;
    public int|null $train_number;
    public int|null $train_group;
    public int|null $train_model;
    public string|null $position_start;
    public string|null $position_end;
    public int|null $no_parking_area;
    public string|null $position_no_parking_area;
    public string|null $position;
    public string $position_base_first;
    public array $position_base_second;
    public int|string $position_extra_first;
    public array $position_extra_second;
    public array $substation_type;
    public int|null $headway;
    public int|null $online_trains_number;
    public int|null $incidence;
    public int|null $affect_trains_number;
    public int|null $emergency_duration;
    public int|null $operation_duration;
    public int|null $maximum_delay;
    public int|null $train_delayed_two_minutes;
    public int|null $train_delayed_five_minutes;
    public int|null $get_off_trains_number;
    public int|null $skip_stop_trains_number;
    public string|null $handle_person_dispatch;
    public string|null $handle_person_leader;
    public string|null $handle_person_principal;
    public string|null $handle_person_principal_device;
    public string|null $handle_person_deputy;
    public string|null $handle_person_deputy_device;
    public int|null $command_area;
    public int|null $team_serial_number;
    public int|null $delete_time;
    public string|null $images;
    public string|null $images_add;
    public string|null $images_duibi;
    public string|null $update_time;
    public int $status;
    public ?AccidentCasesScoreObj $totalScore;
    public string $create_by;
    public string $create_name;
    public string $create_remark;
    public array $check_list;
    public array $check_name_list;
    public string $check_by;
    public string $check_name;
    public string $check_remark;

    /**
     * AccidentCasesObj constructor.
     * @param AccidentCases $AccidentCases
     */
    public function __construct(AccidentCases $AccidentCases)
    {
        $this->id = $AccidentCases->id;
        $this->title = $AccidentCases->title;
        $this->level = $AccidentCases->level;
        $this->type_base = $AccidentCases->type_base;
        $this->type_first = $AccidentCases->type_first;
        $this->type_second = $AccidentCases->type_second;
        $this->type_third = $AccidentCases->type_third;
        $this->type_extra = $AccidentCases->type_extra;
        $this->duty_category = $AccidentCases->duty_category;
        $this->duty_reason = $AccidentCases->duty_reason;
        $this->start_time = $AccidentCases->start_time;
        $this->elimination_time = $AccidentCases->elimination_time;
        $this->recovery_time = $AccidentCases->recovery_time;
        $this->day_type = $AccidentCases->day_type;
        $this->time_type = $AccidentCases->time_type;
        $this->line = $AccidentCases->line;
        $this->automation_level = $AccidentCases->automation_level;
        $this->signal_supplier = $AccidentCases->signal_supplier;
        $this->train_number = $AccidentCases->train_number;
        $this->train_group = $AccidentCases->train_group;
        $this->train_model = $AccidentCases->train_model;
        $this->position_start = $AccidentCases->position_start;
        $this->position_end = $AccidentCases->position_end;
        $this->no_parking_area = $AccidentCases->no_parking_area;
        $this->position_no_parking_area = $AccidentCases->position_no_parking_area;
        $this->position = $AccidentCases->position;
        $this->position_base_first = $AccidentCases->position_base_first;
        $this->position_base_second = $AccidentCases->position_base_second;
        $this->position_extra_first = $AccidentCases->position_extra_first;
        $this->position_extra_second = $AccidentCases->position_extra_second;
        $this->signal_concentration_station = $AccidentCases->signal_concentration_station;//           信号集中站/区域站
        $this->fault_switch_number = $AccidentCases->fault_switch_number;                      //故障道岔编号
        $this->foreign_body_location = $AccidentCases->foreign_body_location;                   //异物位置
        $this->power_supply_zoning = $AccidentCases->power_supply_zoning;                  //供电分区
        $this->substation_in_the_fault_section = $AccidentCases->substation_in_the_fault_section;        //故障区段内变电站
        $this->substation_type = $AccidentCases->substation_type;
        $this->headway = $AccidentCases->headway;
        $this->online_trains_number = $AccidentCases->online_trains_number;
        $this->incidence = $AccidentCases->incidence;
        $this->affect_trains_number = $AccidentCases->affect_trains_number;
        $this->emergency_duration = $AccidentCases->emergency_duration;
        $this->operation_duration = $AccidentCases->operation_duration;
        $this->maximum_delay = $AccidentCases->maximum_delay;
        $this->train_delayed_two_minutes = $AccidentCases->train_delayed_two_minutes;
        $this->train_delayed_five_minutes = $AccidentCases->train_delayed_five_minutes;
        $this->get_off_trains_number = $AccidentCases->get_off_trains_number;
        $this->skip_stop_trains_number = $AccidentCases->skip_stop_trains_number;
        $this->handle_person_dispatch = $AccidentCases->handle_person_dispatch;
        $this->handle_person_leader = $AccidentCases->handle_person_leader;
        $this->handle_person_principal = $AccidentCases->handle_person_principal;
        $this->handle_person_principal_device = $AccidentCases->handle_person_principal_device;
        $this->handle_person_deputy = $AccidentCases->handle_person_deputy;
        $this->handle_person_deputy_device = $AccidentCases->handle_person_deputy_device;
        $this->command_area = $AccidentCases->command_area;
        $this->team_serial_number = $AccidentCases->team_serial_number;
        $this->delete_time = $AccidentCases->delete_time;
        $this->images = $AccidentCases->images;
        $this->images_add = $AccidentCases->images_add;
        $this->images_duibi = $AccidentCases->images_duibi;
        $this->totalScore = $AccidentCases->totalScore;
        $this->update_time = $AccidentCases->update_time;
        $this->status = $AccidentCases->status;
        $this->create_by = $AccidentCases->create_by;
        $this->create_name = $AccidentCases->create_name;
        $this->create_remark = $AccidentCases->create_remark;
        $this->check_list = $AccidentCases->check_list;
        $this->check_name_list = $AccidentCases->check_name_list;
        $this->check_by = $AccidentCases->check_by;
        $this->check_name = $AccidentCases->check_name;
        $this->check_remark = $AccidentCases->check_remark;
    }
}