syntax = "proto2";
package vip.metadev.module.battle.protobuf;

option java_outer_classname = "MailRequestMessageProto";
option java_multiple_files = false;

// 导入消息类型枚举
import "ws_message_types.proto";
// 导入公共消息定义
import "ws_common_request.proto";

// 获取邮件列表
message MailListRequestMessage {
  optional WsMessageType message_id = 1 [default = MAIL_LIST_REQUEST];  // 获取邮件列表
  optional int32 status = 2;                           // 邮件状态，可选
  optional int32 pageNum = 3;                          // 页码
  optional int32 pageSize = 4;                         // 页大小
  optional CommonRequest envelope = 10;                 // 公共必传参数集
}

message MailListResponse {
  optional WsMessageType message_id = 1 [default = MAIL_LIST_REQUEST];  // 获取邮件列表
  optional int32 total = 2;                          // 总数
  required PlayerMailList mail_list=3;               // 玩家邮件列表
  optional CommonRequest envelope = 10;              // 公共必传参数集
}

message PlayerMailList{
  optional string title =1;        //邮件标题
  optional string content=2;       //邮件内容
  optional int32  mail_type=3;     //邮件类型（1-系统邮件，2-活动邮件，3-奖励邮件）
  optional int32  status=4;        //邮件状态（0-未读，1-已读，2-已领取，3-已删除）
  optional int32  hasAttachment=5; //是否有附件  是否有附件（0-无，1-有）
  repeated ItemVo items=6;         //附件道具列表
  optional int32  is_claimed=7;    //是否已领取附件（0-未领取，1-已领取）
  optional string create_time=8;   //邮件发送时间
}

message ItemVo{
  optional int64 item_id=1;        //道具id
  optional int64 quantity=2;       //数量
}


// 领取邮件附件 批量领取
message MailClaimRequestMessage {
  optional WsMessageType message_id = 1 [default = MAIL_CLAIM_REQUEST];  // 领取邮件附件
  optional int64 mailIds = 2;                             // 邮件id数组
  optional CommonRequest envelope = 10;                  // 公共必传参数集
}

//领取邮件附件响应
message MailClaimResponse{
  repeated ItemVo items=1;   // 获取的道具列表
}

//标记邮件已读 批量已读
message MailReadRequestMessage{
  optional WsMessageType message_id = 1 [default = MAIL_READ_REQUEST];  // 领取邮件附件
  repeated int64 mailIds = 2;                             // 邮件id数组
  optional CommonRequest envelope = 10;                  // 公共必传参数集
}


//删除邮件 批量删除
message MailDeleteRequestMessage{
  optional WsMessageType message_id = 1 [default = MAIL_DELETE_REQUEST];  // 删除邮件
  required int64 mailIds = 2;                             // 邮件id数组
  optional CommonRequest envelope = 10;                  // 公共必传参数集
}
