syntax = "proto3";

import "google/protobuf/any.proto";
option go_package="../protogo";

message TDSData{
  string table = 1;
  // 标识业务路由
  TableId tableId = 2;
  enum Flags{
    NORMAL_DISPATCH = 0;//增量
    FULL_DISPATCH = 1;//全量
  }
  Flags flags = 3;
  repeated TDSDataPayload payload = 4;
  // 当TDSData压缩好后长度超过上限的时候，用于记录一共被拆分了几个数据包。应用层不用
  int32 pDs_split_num = 5;
  // 记录当前是第几个拆分包。应用层不用
  int32 pDs_split_index = 6;
}

// 业务功能路由。每个模块都有对应的 mod-<name>.proto
enum TableId{
  None = 0;
  User_Login = 100;
  User_List = 101;
  User_Add = 102;
  User_Del = 103;
  User_Update = 104;
  Site_Add = 110;
  Site_Del = 111;
  Site_info_List = 112;
  Site_Param_List = 113;
  Site_Param_Update = 114;
  Site_Param_Default = 115; // 获取默认参数
  Satellite_Element_List = 120; // 根数列表
  Satellite_Del = 121;
  Satellite_Element_Update = 122;
  Satellite_Info_Update = 123; // 卫星基本信息更新
  Satellite_Info_List = 124; // 卫星基本信息
  Satellite_Param_Update = 125; // 卫星工作参数更新
  Satellite_Param_List = 126;
  Satellite_Find_By_Element = 127; // 根据根数获取已录入的卫星信息
  System_Param_Get = 140; // 系统参数：冲突规则、预报参数
  System_Param_Set = 141;
  System_Param_Default = 142; // 获取默认参数
  System_Log_list = 145; // 系统日志
  // 设备
  Service_List = 200;   // 设备列表（通信参数列表、设备待选框列表）
  Service_Update = 201; // 修改设备通信参数
  Service_Fault_list = 205; // 设备故障列表
  // task
  Task_Forecast = 300; // 任务预报
  Task_Del = 301;
  Task_Update = 302; // 变更任务状态
  Task_List = 303;
  Task_Detail_Dat = 310; // 获取任务的俯仰角轨迹
  Task_Detail_Point = 311; // 获取任务的星下点轨迹
  Task_Exec_List = 350; // 目标特征数据列表和任务执行列表
  Task_Exec_Detail_Spec = 351; // 频谱回放
}

message TDSDataPayload{
  // 应用层不用
  enum Operation{
    OPERATION_ADD = 0;
    OPERATION_DEL = 1;
    OPERATION_UPDATE = 2;
    OPERATION_QUERY = 3;
  }
  Operation operation = 1;
  enum Opera_ret{
    OPERATION_SUCCEED = 0;
    OPERATION_FAILED = 1;
  }
  // 回执
  Opera_ret ret = 2;
  // 回执消息
  string msg = 3;
  repeated google.protobuf.Any data = 4;
}