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 } // 这个不会接在rpc服务里 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; // 检查状态 bool is_show_click_text = 5; // 展示 开始生产 到 生产完成时 的特殊显示语句 } 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 }