protoc-gen-slc/proto/blocks.proto

85 lines
2.5 KiB
Protocol Buffer

syntax = "proto3";
package survey;
option go_package = ".;survey";
message Empty{
}
message FetchRequest {
int64 page_no=1; // 页数
int64 page_size=2; // 每页记录数
map<string,string> params=3; // 条件参数,key=val,eg key:category_id=?,vlaue=11
}
message IdentRequest{
int64 id = 1; // 唯一ID
string identity = 2; // 唯一码
}
message VersionRequest {
int64 version=1; // 时序版本号
}
message SearchRequest {
string keyword=1; //关键词
}
message StatusReply{
int64 status = 1; // 状态码
string identity=2; // 标识码
string message=3; //状态说明
int64 timeseq=4; // 响应时间序列
}
// 问卷基本信息
message SurveyItem {
string id = 1; // 问卷ID
string title = 2; // 问卷标题
string description = 3; // 问卷描述
string creator_id = 4; // 创建者ID
string start_time = 5; // 开始时间
string end_time = 6; // 结束时间
bool is_active = 7; // 是否激活
bool is_anonymous = 8; // 是否匿名
repeated QuestionItem questions = 9; // 问题列表
repeated string tags = 10; // 标签
string style_config = 11; // 样式配置(JSON)
}
// 问题类型
enum QuestionType {
SINGLE_CHOICE = 0; // 单选题
MULTIPLE_CHOICE = 1; // 多选题
TEXT = 2; // 文本题
SCALE = 3; // 量表题
RANKING = 4; // 排序题
DATE = 5; // 日期题
}
// 问题定义
message QuestionItem {
string id = 1; // 问题ID
string survey_id = 2; // 所属问卷ID
string title = 3; // 问题标题
string description = 4; // 问题描述
QuestionType type = 5; // 问题类型
bool is_required = 6; // 是否必答
repeated Option options = 7; // 选项(适用于选择题)
int32 min_selections = 8; // 最少选择数(多选题)
int32 max_selections = 9; // 最多选择数(多选题)
int32 order = 10; // 问题顺序
string placeholder = 11; // 输入提示(文本题)
}
// 问题选项
message Option {
string id = 1; // 选项ID
string text = 2; // 选项文本
int32 order = 3; // 选项顺序
string image_url = 4; // 选项图片
int32 score = 5; // 选项分数(适用于量表)
}