Files
full/module/base/cloud/proto/album.proto

102 lines
3.0 KiB
Protocol Buffer

syntax = "proto3";
package cloud;
option go_package = "bsm/full/module/base/cloud/pb;cloud";
import "module/base/cloud/proto/const.proto";
// 相册服务
service Album {
// 创建相册
rpc CreateAlbum(CreateAlbumRequest) returns (blocks.StatusReply);
// 获取相册详情
rpc GetAlbum(blocks.IdentRequest) returns (CloudAlbumItem);
// 更新相册
rpc UpdateAlbum(CloudAlbumItem) returns (blocks.StatusReply);
// 删除相册
rpc DeleteAlbum(blocks.IdentRequest) returns (blocks.StatusReply);
// 获取相册列表
rpc ListAlbums(blocks.FetchRequest) returns (ListAlbumsResponse);
// 设置封面照片
rpc SetCoverPhoto(SetCoverPhotoRequest) returns (blocks.StatusReply);
// 上传照片
rpc UploadPhoto(CloudPhotoItem) returns (blocks.StatusReply);
// 获取照片详情
rpc GetPhoto(blocks.IdentRequest) returns (CloudPhotoItem);
// 更新照片
rpc UpdatePhoto(CloudPhotoItem) returns (blocks.StatusReply);
// 删除照片
rpc DeletePhoto(blocks.IdentRequest) returns (blocks.StatusReply);
// 获取照片列表
rpc ListPhotos(blocks.FetchRequest) returns (ListPhotosResponse);
// 移动照片到其他相册
rpc MovePhoto(MovePhotoRequest) returns (blocks.StatusReply);
}
// 请求消息定义
message CreateAlbumRequest {
uint64 cloud_id = 1;
string cloud_identity = 2;
string name = 3; // 相册名称
string description = 4; // 相册描述
string cover_photo = 5; // 封面照片URL
bool is_private = 6; // 是否私有
}
message ListAlbumsResponse {
repeated CloudAlbumItem albums = 1;
int64 total = 2;
}
message SetCoverPhotoRequest {
uint64 album_id = 1;
uint64 photo_id = 2;
}
// 相册模型
message CloudAlbumItem {
uint64 id = 1;
string identity = 2;
string name = 3; // 相册名称
string description = 4; // 相册描述
string cover_photo = 5; // 封面照片URL
bool is_private = 6; // 是否私有
string created_at = 7;
string updated_at = 8;
// 关联关系
repeated CloudPhotoItem photos = 9; // 相册下的照片
}
message ListPhotosResponse {
repeated CloudPhotoItem photos = 1;
int64 total = 2;
}
message MovePhotoRequest {
uint64 photo_id = 1;
uint64 new_album_id = 2;
}
// 照片模型
message CloudPhotoItem {
uint64 id = 1;
string identity = 2;
uint64 album_id = 3; // 专辑ID
string title = 4; // 照片标题
string description = 5; // 照片描述
string file_path = 6; // 文件路径
int64 file_size = 7; // 文件大小
string mime_type = 8; // 文件类型
int32 width = 9; // 图片宽度
int32 height = 10; // 图片高度
string taken_at = 11; // 拍摄时间
string location = 12; // 拍摄地点
string tags = 13; // 标签,逗号分隔
string created_at = 14;
string updated_at = 15;
// 关联关系
CloudAlbumItem album = 16;
}