syntax = "proto3"; package cloud; option go_package = "bsm/full/module/base/cloud/pb;cloud"; import "module/base/cloud/proto/const.proto"; // 笔记服务 service Note { // 创建笔记 rpc CreateNote(CreateNoteRequest) returns (blocks.StatusReply); // 获取笔记详情 rpc GetNote(blocks.IdentRequest) returns (CloudNoteItem); // 更新笔记 rpc UpdateNote(CloudNoteItem) returns (blocks.StatusReply); // 删除笔记 rpc DeleteNote(blocks.IdentRequest) returns (blocks.StatusReply); // 获取笔记列表 rpc ListNotes(blocks.FetchRequest) returns (ListNotesResponse); // 置顶/取消置顶笔记 rpc TogglePin(TogglePinRequest) returns (blocks.StatusReply); // 增加浏览次数 rpc IncrementViews(blocks.IdentRequest) returns (blocks.StatusReply); // 搜索笔记 rpc SearchNotes(blocks.FetchRequest) returns (ListNotesResponse); // 上传附件 rpc InsertAttachment(NoteAttachmentItem) returns (blocks.StatusReply); // 删除附件 rpc DeleteAttachment(blocks.IdentRequest) returns (blocks.StatusReply); } // 请求消息定义 message CreateNoteRequest { uint64 cloud_id = 1; string cloud_identity = 2; string title = 3; // 标题 string content = 4; // 内容 string category = 5; // 分类 string tags = 6; // 标签,逗号分隔 bool is_markdown = 7; // 是否是markdown格式 bool is_pinned = 8; // 是否是置顶 bool is_private = 9; // 是否是私有 } message ListNotesResponse { repeated CloudNoteItem notes = 1; int64 total = 2; } message TogglePinRequest { uint64 id = 1; bool is_pinned = 2; } // 知识笔记模型 message CloudNoteItem { uint64 id = 1; string identity = 2; string title = 3; // 标题 string content = 4; // 内容 string category = 5; // 分类 string tags = 6; // 标签,逗号分隔 bool is_markdown = 7; // 是否是markdown格式 bool is_pinned = 8; // 是否是置顶 bool is_private = 9; // 是否是私有 int32 views = 10; // 浏览次数 string created_at = 11; string updated_at = 12; // 关联关系 repeated NoteAttachmentItem attachments = 13; } // 笔记附件模型 message NoteAttachmentItem { uint64 id = 1; uint64 note_id = 2; // 笔记ID string file_name = 3; // 文件名 string file_path = 4; // 文件路径 int64 file_size = 5; // 文件大小 string mime_type = 6; // 文件类型 string created_at = 7; // 创建时间 }