syntax = "proto3"; //版本声明,使用v3版本 package notify; option go_package = "gitlab.fusenpack.com/backend/notify;service"; // 导入google/api/annotations.proto 注释依赖 import "google/api/annotations.proto"; import "service/basic.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/any.proto"; import "google/protobuf/empty.proto"; import "google/api/httpbody.proto"; import "google/protobuf/timestamp.proto"; //定义服务 service notify { // 心跳 rpc Ping(basic.Request) returns (basic.Response) {} // 邮件发送基础版本 rpc EmailSend(EmailSendReq) returns (EmailSendRes) {} // 邮件注册确认 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) {} } 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字节 string sender = 2; // 发送者 string target_email = 3; // 发送的目标email } // 默认是 type email message EmailSendReq { EmailNotifyBasic basic_email = 1; string title = 2; // 邮件标题 string content = 3; // 邮件内容 Operator operator = 4; // 操作类型 // string company_name = 5; // fs公司名 // string confirmation_link = 6; // fs确认连接 // string sender_name = 7; // 发送人 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 EmailSendRes { 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 = 4; } 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 }