syntax = "proto3";
package Fantasy.Network.Message;

////////////// ********  私聊/邮件 *******/////////////

/// 会话信息
message ConversationInfo
{
	RoleSimpleInfo RoleInfo = 1; //对方信息
	repeated MailInfo List = 2;//对话列表
}

message MailInfo
{
    int64 Id = 1;                       //邮件id
	int64 Sender = 2; 					//发送者
    string Content = 3;                 //内容
    int64 CreateTime = 4;               //发送时间
    int32 MailType = 5;                 //邮件类型
    int32 MailState = 6;                //邮件状态
    repeated AwardInfo Items = 7;       //附件列表
}


///请求会话列表
message C2S_GetConversationsRequest // ICustomRouteRequest,S2C_GetConversationsResponse,SocialRoute
{

}

///请求会话列表响应
message S2C_GetConversationsResponse // ICustomRouteResponse
{
	repeated ConversationInfo List = 1;
}

///发送邮件消息
message C2S_SendMailRequest // ICustomRouteRequest,S2C_SendMailResponse,SocialRoute
{
	int64 Target = 1;					//目标id
	string Content = 2;                 //内容
	repeated AwardInfo Items = 3;       //附件列表
}

///发送邮件消息响应
message S2C_SendMailResponse // ICustomRouteResponse
{
	
}

///发送删除会话消息
message C2S_DeleteMailRequest // ICustomRouteRequest,S2C_DeleteMailResponse,SocialRoute
{
	int64 Id = 1;					//会话id
}

///发送删除会话消息响应
message S2C_DeleteMailResponse // ICustomRouteResponse
{
	int64 Id = 1;					//会话id
}


///新邮件推送
message S2C_HaveMail // ICustomRouteMessage,SocialRoute
{
	MailInfo Mail = 1;
	string Key = 2;
}

message S2C_MailState // ICustomRouteMessage,SocialRoute
{
	int32 MailState = 1;
	int64 MailId = 2;
}

////////////// ********  频道聊天 *******/////////////
message ChatUserInfo
{
    int64 Id = 1;//用户id
    int64 Name = 2;//用户名
}

message ChatMessageInfo
{
    int32 Type = 1;                         //消息类型
    int64 Source = 2;                       //消息来源
    ChatUserInfo Trigger = 3;               //触发者
    string Content = 4;              		//内容
	int64 SendTime = 5;						//发送时间
}

///创建频道
message C2S_CreateChannelRequest // ICustomRouteRequest,S2C_CreateChannelResponse,SocialRoute
{
	string Name = 1; //频道名称
}

///创建频道响应
message S2C_CreateChannelResponse // ICustomRouteResponse
{
	int64 ChannelId = 1; //创建的频道id
}

///请求进入频道
message C2S_JoinChannelRequest // ICustomRouteRequest,S2C_JoinChannelResponse,SocialRoute
{
	int64 Target = 1; // 频道id
}

///进入频道响应
message S2C_JoinChannelResponse // ICustomRouteResponse
{
	
}

///发送消息
message C2S_SendMessageRequest // ICustomRouteRequest,S2C_SendMessageResponse,SocialRoute
{
	string Message = 1;
	int64 Target = 2;					//目标id
}

///发送消息响应
message S2C_SendMessageResponse // ICustomRouteResponse
{
	
}

///推送消息
message S2C_Message // ICustomRouteMessage,SocialRoute
{
	ChatMessageInfo Message = 1;
}


////////////// ********  工会 *******/////////////

message ClubInfo
{
	int64 Id = 1; //工会ID
	string Name = 2; //工会名称
	int64 CreateTime = 3; //创建时间
	int64 OwnerId = 4; //工会创建者ID
	int32 MemberCount = 5; //成员数量
}

///请求创建工会
message C2S_CreateClubRequest // ICustomRouteRequest,S2C_CreateClubResponse,SocialRoute
{
	string Name = 1; //工会名称
}

///创建工会响应
message S2C_CreateClubResponse // ICustomRouteResponse
{
	ClubInfo Club = 1; //创建的工会信息
}

///请求工会信息
message C2S_GetClubInfoRequest // ICustomRouteRequest,S2C_GetClubInfoResponse,SocialRoute
{
	int64 ClubId = 1; //工会ID
}
///响应工会信息
message S2C_GetClubInfoResponse // ICustomRouteResponse
{
	string Name = 1; //工会名称
}

/// 请求工会成员列表
message C2S_GetMemberListRequest // ICustomRouteRequest,S2C_GetMemberListResponse,SocialRoute
{
	int64 ClubId = 1; //工会ID
}

/// 响应工会成员列表
message S2C_GetMemberListResponse // ICustomRouteResponse
{
	repeated RoleSimpleInfo Members = 1; //工会成员列表
}

///获取工会列表请求
message C2S_GetClubListRequest // ICustomRouteRequest,S2C_GetClubListResponse,SocialRoute
{

}
///获取工会列表响应
message S2C_GetClubListResponse // ICustomRouteResponse
{
	repeated ClubInfo Clubs = 1; //工会列表
}

/// 请求加入工会
message C2S_JoinClubRequest // ICustomRouteRequest,S2C_JoinClubResponse,SocialRoute
{
	int64 ClubId = 1; //工会ID
}

/// 响应加入工会
message S2C_JoinClubResponse // ICustomRouteResponse
{
	ClubInfo Club = 1; //加入的工会信息
}

/// 请求退出工会
message C2S_LeaveClubRequest // ICustomRouteRequest,S2C_LeaveClubResponse,SocialRoute
{
	int64 ClubId = 1; //工会ID
}

/// 响应退出工会
message S2C_LeaveClubResponse // ICustomRouteResponse
{
	int64 ClubId = 1; //退出的工会ID
}

/// 请求解散工会
message C2S_DissolveClubRequest // ICustomRouteRequest,S2C_DissolveClubResponse,SocialRoute
{
	int64 ClubId = 1; //工会ID
}

/// 响应解散工会
message S2C_DissolveClubResponse // ICustomRouteResponse
{
	int64 ClubId = 1; //解散的工会ID
}

/// 请求操作申请
message C2S_DisposeJoinRequest // ICustomRouteRequest,S2C_DisposeJoinResponse,SocialRoute
{
    int64 ClubId = 1; //工会ID
    int64 ApplicantId = 2; //申请人ID
    int32 Agree = 3; //是否同意申请，1表示同意，0表示拒绝
}

/// 响应操作申请
message S2C_DisposeJoinResponse // ICustomRouteResponse
{
	int64 ClubId = 1; //工会ID
	int64 ApplicantId = 2; //申请人ID
    int32 Agree = 3; //是否同意申请，1表示同意，0表示拒绝
}

///推送消息
message S2C_ClubChange // ICustomRouteMessage,SocialRoute
{
	ClubInfo Club = 1;
    int32 ChangeType = 2; //变更类型 0.创建 1.解散 2.加入 3.退出 4.申请处理
}
