syntax = "proto3";

package model;
option go_package =  "github.com/pingcap-inc/pinsights/model";

// @api:GetLarkBiTables:params
message GetLarkBiTablesParams {
  string larkAppToken = 1;
}

// @api:GetLarkBiTables:data
message LarkBiTableListData {
  repeated LarkBiTableItem items = 1;
  // original json string from lark api
  string originalJsonData = 2;
}

message LarkBiTableItem {
  string name = 1;
  string tableId = 2;
}

// @api:MGetLarkBiTableRecords:params
message MGetLarkBiTableRecordsParams {
  string larkAppToken = 1;
  // comma-separated table ids
  string tableIds = 2;
}

// @api:MGetLarkBiTableRecords:res
message MGetLarkBiTableRecordsRes {
  int32 code = 1;
  string message = 2;
  // ^key for table id, value for records
  map<string, LarkBiTableRecords> data = 3;
}

message LarkBiTableRecords {
  repeated LarkBiTableSingleRecord items = 1;
  // original json string from lark api
  string originalJsonData = 2;
}

message LarkBiTableSingleRecord {
  string id = 1;
  // generally, it's equal to id
  string recordId = 2;
  // every field (column), key for field(col) name, value for raw jsonstring
  map<string, string> fields = 3;
}
