syntax = "proto3";

message View {
    string id = 1;
    string belong_to_id = 2;
    string name = 3;
    string desc = 4;
    ViewDataType data_type = 5;
    int64 version = 6;
    RepeatedView belongings = 7;
    int64 modified_time = 8;
    int64 create_time = 9;
    string ext_data = 10;
    string thumbnail = 11;
    int32 plugin_type = 12;
}
message RepeatedView {
    repeated View items = 1;
}
message CreateViewPayload {
    string belong_to_id = 1;
    string name = 2;
    string desc = 3;
    oneof one_of_thumbnail { string thumbnail = 4; };
    ViewDataType data_type = 5;
    int32 plugin_type = 6;
    bytes data = 7;
}
message CreateViewParams {
    string belong_to_id = 1;
    string name = 2;
    string desc = 3;
    string thumbnail = 4;
    ViewDataType data_type = 5;
    string view_id = 6;
    bytes data = 7;
    int32 plugin_type = 8;
}
message ViewId {
    string value = 1;
}
message RepeatedViewId {
    repeated string items = 1;
}
message UpdateViewPayload {
    string view_id = 1;
    oneof one_of_name { string name = 2; };
    oneof one_of_desc { string desc = 3; };
    oneof one_of_thumbnail { string thumbnail = 4; };
}
message UpdateViewParams {
    string view_id = 1;
    oneof one_of_name { string name = 2; };
    oneof one_of_desc { string desc = 3; };
    oneof one_of_thumbnail { string thumbnail = 4; };
}
message MoveFolderItemPayload {
    string item_id = 1;
    int32 from = 2;
    int32 to = 3;
    MoveFolderItemType ty = 4;
}
enum ViewDataType {
    TextBlock = 0;
    Grid = 1;
}
enum MoveFolderItemType {
    MoveApp = 0;
    MoveView = 1;
}
