proto/service/notify.proto
2024-01-26 10:32:07 +08:00

167 lines
4.5 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "proto3"; //版本声明使用v3版本
package notify;
option go_package = "gitlab.fusenpack.com/backend/notify;service";
// 导入google/api/annotations.proto 注释依赖
import "service/basic.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
//定义服务
service notify {
// 心跳 必要 用来启动邮件
rpc Ping(basic.Request) returns (basic.Response) {}
// 邮件发送基础版本
rpc EmailSend(EmailSendReq) returns (EmailSendResp) {}
// 通过邮件通知 注册确认
rpc EmailRegisterConfirm( EmailRegisterReq) returns ( EmailRegisterResp) {}
// 通过邮件通知 重置密码的填写页面
rpc EmailResetPasswordHtml( EmailResetHtmlReq) returns (EmailResetHtmlResp) {}
// 通过邮件通知 重置密码的确认
rpc EmailResetConfirm( EmailResetConfirmReq) returns (EmailResetConfirmResp) {}
// 通过邮件通知 订单 支付详情
rpc OrderPaymentDetails( OrderPaymentDetailsReq) returns (OrderPaymentDetailsResp) {}
// 通过邮件通知 订单 状态流转
rpc OrderStatusTransition( OrderStatusTransitionReq) returns (OrderStatusTransitionResp) {}
// 通过邮件通知 订单 尾部款通知
rpc OrderPayArrears( OrderPayArrearsReq) returns (OrderPayArrearsResp) {}
}
message Operator {
// 操作类型
enum Type {
immediate_resend = 0; // 马上重发(覆盖当前的发送任务,等于重置)
normal_send = 1; // 标准发送(可以设置时间和重发的次数)
cancel_send = 2; // 取消发送(取消当前的发送)
}
message Retry {
int64 retry_count = 1; // 允许重发次数
int64 interval_time = 2; // 执行的时间间隔 sec 用秒为单位
}
Type type = 1; // 操作类型
optional Retry retry = 2; //重试
optional google.protobuf.Timestamp start_time = 3; // 在这个时间开始执行
optional google.protobuf.Timestamp last_send_time = 4; // 上次发送的时间
}
message EmailNotifyBasic {
optional string notify_id = 1; // 用于处理唯一的任务,重发都会被利用到 256字节, 如果不写自动生成一个uuid
string sender = 2; // 发送者
string target_email = 3; // 发送的目标email
string subject_title = 4; // 子标题
}
// 默认是 type email
message EmailSendReq {
EmailNotifyBasic basic_email = 1;
string title = 2; // 邮件标题
string content = 3; // 邮件内容
Operator operator = 4; // 操作类型
optional google.protobuf.Struct metadata = 5; // 扩展参数
}
// 消息类型
enum NotifyType {
email = 0; // email
feishu = 1; // 飞书
wechat = 2; // 微信
}
// 操作类型
enum EmailStatus {
ok = 0; // 成功
running = 1; // 进行中
error = 2; // 处理错误
cancel = 3; // 已经被取消
finish = 4; // 结束
}
message EmailSendResp {
EmailStatus status = 1;
string msg = 2;
}
message EmailRegisterReq {
EmailNotifyBasic basic_email = 1; // 邮件基础要素
string confirmation_link = 2; // 邮件确认链接
}
message EmailRegisterResp {
int64 code = 1; // 0成功 其他异常
string notify_id = 2; // 通知id
}
message EmailResetHtmlReq {
EmailNotifyBasic basic_email = 1;
string confirmation_link = 2;
}
message EmailResetHtmlResp {
int64 code = 1; // 0成功 其他异常
string notify_id = 2; // 通知id
}
message EmailResetConfirmReq {
string reset_password_link = 1;
string reset_token = 2;
}
message EmailResetConfirmResp {
int64 code = 1; // 0成功 其他异常
bytes content = 2; // 返回页面内容
}
message OrderPaymentDetailsReq {
EmailNotifyBasic basic_email = 1;
string payment_details_link = 2;
}
message OrderPaymentDetailsResp {
int64 code = 1; // 0成功 其他异常
string notify_id = 2; // 通知id
}
message OrderStatusTransitionReq {
EmailNotifyBasic basic_email = 1;
string last_status = 2; // 上个状态
string current_status = 3; // 当前状态
string check_status_link = 4; // 检查状态
}
message OrderStatusTransitionResp {
int64 code = 1; // 0成功 其他异常
string notify_id = 2; // 通知id
}
message OrderPayArrearsReq {
EmailNotifyBasic basic_email = 1;
string pay_arrears_link = 2; // 检查状态
}
message OrderPayArrearsResp {
int64 code = 1; // 0成功 其他异常
string notify_id = 2; // 通知id
}