syntax = "proto2";
package message;
import "message_base.proto";

//分配车位步骤状态
message Alloc_space_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    optional Car_info                   car_info=2;         //当前状态附带信息
    optional string                     description=3;      //状态说明/错误说明
}
message Back_alloc_space_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    repeated Parkspace_info             allocated_parkspace_info_ex=2;       //当前状态附带信息
    optional string                     description=3;      //状态说明/错误说明
}

//查询车位步骤状态
message Search_space_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    repeated Parkspace_info             search_parkspace_info_ex=2;       //当前状态附带信息
    optional string                     description=3;      //状态说明/错误说明
}
message Back_search_space_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    optional Car_info                   car_info=2;       //当前状态附带信息
    optional string                     description=3;      //状态说明/错误说明
}

//确认占用车位步骤状态
message Confirm_space_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    repeated Parkspace_info             confirm_parkspace_info_ex=2;       //当前状态附带信息
    optional string                     description=3;      //状态说明/错误说明
}
message Back_confirm_space_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    repeated Parkspace_info             confirm_parkspace_info_ex=2;       //当前状态附带信息
    optional string                     description=3;      //状态说明/错误说明
}

//解锁/释放车位步骤状态
message Release_space_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    repeated Parkspace_info             release_parkspace_info_ex=2;       //当前状态附带信息
    optional string                     description=3;      //状态说明/错误说明
}
message Back_release_space_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    repeated Parkspace_info             release_parkspace_info_ex=2;       //当前状态附带信息
    optional string                     description=3;      //状态说明/错误说明
}

//对比节点
message Compare_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    optional Locate_information         locate_info_wj=2;      //wj定位结果
    optional Locate_information         locate_info_dj=3;      //dj定位结果
    optional Locate_information         locate_info_result=4;      //定位结果
    optional string                     description=5;      //状态说明/错误说明
}
message Back_compare_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    optional Locate_information         locate_info_wj=2;      //wj定位结果
    optional Locate_information         locate_info_dj=3;      //wj定位结果
    optional Locate_information         locate_info_result=4;      //wj定位结果
    optional string                     description=5;      //状态说明/错误说明
}
//停车调度步骤状态
message Dispatch_store_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    optional Locate_information         locate_info=2;      //定位结果
    repeated Parkspace_info             allocated_parkspace_info_ex=3;//目标车位
    optional string                     description=4;      //状态说明/错误说明
}
message Back_dispatch_store_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    optional Locate_information         locate_info=2;      //定位结果
    repeated Parkspace_info             allocated_parkspace_info_ex=3;//目标车位
    optional string                     description=4;      //状态说明/错误说明
}

//取车调度步骤状态
message Dispatch_pick_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    repeated Parkspace_info             search_parkspace_info_ex=2;//目标车位
    optional string                     description=3;      //状态说明/错误说明
}
message Back_dispatch_pick_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    repeated Parkspace_info             search_parkspace_info_ex=2;       //目标车位
    optional string                     description=3;      //状态说明/错误说明
}

//取车等待车辆离开
message Waitfor_leave_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    optional Car_info                   car_info=2;         //车辆信息
    optional string                     description=3;      //状态说明/错误说明
}
message Back_waitfor_leave_step_statu
{
    optional Step_statu                 step_statu=1 [default=eWaiting];       //状态
    optional Car_info                   car_info=2;         //车辆信息
    optional string                     description=3;      //状态说明/错误说明
}

//停车流程进度消息
message Storing_process_statu_msg
{
    required Base_info                          base_info=1;
    required int32                              terminal_id=2;              //终端id
    required string                             license=3;

    optional Alloc_space_step_statu             alloc_space_step=4;
    optional Compare_step_statu                 compare_step=6;
    optional Dispatch_store_step_statu          dispatch_step=7;
    optional Confirm_space_step_statu           confirm_space_step=8;
    optional bool                               completed=9 [default=false];
    optional Back_confirm_space_step_statu      back_confirm_step=10;
    optional Back_dispatch_store_step_statu     back_dispatch_step=11;
    optional Back_compare_step_statu            back_compare_step=12;
    optional Back_alloc_space_step_statu        back_alloc_space_step=14;
    optional bool                               back_completed=15 [default=false];
}

//取车流程进度消息
message Picking_process_statu_msg
{
    required Base_info                          base_info=1;
    required int32                              terminal_id=2;              //终端id
    required string                             license=3;
    optional Search_space_step_statu            search_space_step=4;
    optional Dispatch_pick_step_statu           dispatch_step=5;
    optional Release_space_step_statu           release_space_step=6;
    optional Waitfor_leave_step_statu           waitfor_leave_step=7;
    optional bool                               completed=8 [default=false];
    optional Back_waitfor_leave_step_statu      back_waitfor_leave_step=9;
    optional Back_dispatch_pick_step_statu      back_dispatch_step=10;
    optional Back_search_space_step_statu       back_search_space_step_statu=11;
    optional bool                               back_completed=12 [default=false];
}
