using ProtoBuf;

using System.Collections.Generic;
using MongoDB.Bson.Serialization.Attributes;
using Fantasy;
using Fantasy.Network.Interface;
using Fantasy.Serialize;
// ReSharper disable InconsistentNaming
// ReSharper disable RedundantUsingDirective
// ReSharper disable RedundantOverriddenMember
// ReSharper disable PartialTypeWithSinglePart
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable CheckNamespace
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
#pragma warning disable CS8618

namespace Fantasy
{	
	/// <summary>
	/// /////////// ********  私聊/邮件 *******/////////////
	/// </summary>
	/// <summary>
	///  会话信息
	/// </summary>
	[ProtoContract]
	public partial class ConversationInfo : AMessage, IProto
	{
		public static ConversationInfo Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<ConversationInfo>();
		}
		public override void Dispose()
		{
			RoleInfo = default;
			List.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<ConversationInfo>(this);
#endif
		}
		[ProtoMember(1)]
		public RoleSimpleInfo RoleInfo { get; set; }
		[ProtoMember(2)]
		public List<MailInfo> List = new List<MailInfo>();
	}
	[ProtoContract]
	public partial class MailInfo : AMessage, IProto
	{
		public static MailInfo Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<MailInfo>();
		}
		public override void Dispose()
		{
			Id = default;
			Sender = default;
			Content = default;
			CreateTime = default;
			MailType = default;
			MailState = default;
			Items.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<MailInfo>(this);
#endif
		}
		[ProtoMember(1)]
		public long Id { get; set; }
		[ProtoMember(2)]
		public long Sender { get; set; }
		[ProtoMember(3)]
		public string Content { get; set; }
		[ProtoMember(4)]
		public long CreateTime { get; set; }
		[ProtoMember(5)]
		public int MailType { get; set; }
		[ProtoMember(6)]
		public int MailState { get; set; }
		[ProtoMember(7)]
		public List<AwardInfo> Items = new List<AwardInfo>();
	}
	/// <summary>
	/// 请求会话列表
	/// </summary>
	[ProtoContract]
	public partial class C2S_GetConversationsRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_GetConversationsRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_GetConversationsRequest>();
		}
		public override void Dispose()
		{
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_GetConversationsRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_GetConversationsResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_GetConversationsRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
	}
	/// <summary>
	/// 请求会话列表响应
	/// </summary>
	[ProtoContract]
	public partial class S2C_GetConversationsResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_GetConversationsResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_GetConversationsResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			List.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_GetConversationsResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_GetConversationsResponse; }
		[ProtoMember(1)]
		public List<ConversationInfo> List = new List<ConversationInfo>();
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 发送邮件消息
	/// </summary>
	[ProtoContract]
	public partial class C2S_SendMailRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_SendMailRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_SendMailRequest>();
		}
		public override void Dispose()
		{
			Target = default;
			Content = default;
			Items.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_SendMailRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_SendMailResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_SendMailRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public long Target { get; set; }
		[ProtoMember(2)]
		public string Content { get; set; }
		[ProtoMember(3)]
		public List<AwardInfo> Items = new List<AwardInfo>();
	}
	/// <summary>
	/// 发送邮件消息响应
	/// </summary>
	[ProtoContract]
	public partial class S2C_SendMailResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_SendMailResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_SendMailResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_SendMailResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_SendMailResponse; }
		[ProtoMember(1)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 发送删除会话消息
	/// </summary>
	[ProtoContract]
	public partial class C2S_DeleteMailRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_DeleteMailRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_DeleteMailRequest>();
		}
		public override void Dispose()
		{
			Id = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_DeleteMailRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_DeleteMailResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_DeleteMailRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public long Id { get; set; }
	}
	/// <summary>
	/// 发送删除会话消息响应
	/// </summary>
	[ProtoContract]
	public partial class S2C_DeleteMailResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_DeleteMailResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_DeleteMailResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			Id = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_DeleteMailResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_DeleteMailResponse; }
		[ProtoMember(1)]
		public long Id { get; set; }
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 新邮件推送
	/// </summary>
	[ProtoContract]
	public partial class S2C_HaveMail : AMessage, ICustomRouteMessage, IProto
	{
		public static S2C_HaveMail Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_HaveMail>();
		}
		public override void Dispose()
		{
			Mail = default;
			Key = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_HaveMail>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_HaveMail; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public MailInfo Mail { get; set; }
		[ProtoMember(2)]
		public string Key { get; set; }
	}
	[ProtoContract]
	public partial class S2C_MailState : AMessage, ICustomRouteMessage, IProto
	{
		public static S2C_MailState Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_MailState>();
		}
		public override void Dispose()
		{
			MailState = default;
			MailId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_MailState>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_MailState; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public int MailState { get; set; }
		[ProtoMember(2)]
		public long MailId { get; set; }
	}
	/// <summary>
	/// /////////// ********  频道聊天 *******/////////////
	/// </summary>
	[ProtoContract]
	public partial class ChatUserInfo : AMessage, IProto
	{
		public static ChatUserInfo Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<ChatUserInfo>();
		}
		public override void Dispose()
		{
			Id = default;
			Name = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<ChatUserInfo>(this);
#endif
		}
		[ProtoMember(1)]
		public long Id { get; set; }
		[ProtoMember(2)]
		public long Name { get; set; }
	}
	[ProtoContract]
	public partial class ChatMessageInfo : AMessage, IProto
	{
		public static ChatMessageInfo Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<ChatMessageInfo>();
		}
		public override void Dispose()
		{
			Type = default;
			Source = default;
			Trigger = default;
			Content = default;
			SendTime = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<ChatMessageInfo>(this);
#endif
		}
		[ProtoMember(1)]
		public int Type { get; set; }
		[ProtoMember(2)]
		public long Source { get; set; }
		[ProtoMember(3)]
		public ChatUserInfo Trigger { get; set; }
		[ProtoMember(4)]
		public string Content { get; set; }
		[ProtoMember(5)]
		public long SendTime { get; set; }
	}
	/// <summary>
	/// 创建频道
	/// </summary>
	[ProtoContract]
	public partial class C2S_CreateChannelRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_CreateChannelRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_CreateChannelRequest>();
		}
		public override void Dispose()
		{
			Name = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_CreateChannelRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_CreateChannelResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_CreateChannelRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public string Name { get; set; }
	}
	/// <summary>
	/// 创建频道响应
	/// </summary>
	[ProtoContract]
	public partial class S2C_CreateChannelResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_CreateChannelResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_CreateChannelResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			ChannelId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_CreateChannelResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_CreateChannelResponse; }
		[ProtoMember(1)]
		public long ChannelId { get; set; }
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 请求进入频道
	/// </summary>
	[ProtoContract]
	public partial class C2S_JoinChannelRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_JoinChannelRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_JoinChannelRequest>();
		}
		public override void Dispose()
		{
			Target = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_JoinChannelRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_JoinChannelResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_JoinChannelRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public long Target { get; set; }
	}
	/// <summary>
	/// 进入频道响应
	/// </summary>
	[ProtoContract]
	public partial class S2C_JoinChannelResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_JoinChannelResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_JoinChannelResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_JoinChannelResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_JoinChannelResponse; }
		[ProtoMember(1)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 发送消息
	/// </summary>
	[ProtoContract]
	public partial class C2S_SendMessageRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_SendMessageRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_SendMessageRequest>();
		}
		public override void Dispose()
		{
			Message = default;
			Target = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_SendMessageRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_SendMessageResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_SendMessageRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public string Message { get; set; }
		[ProtoMember(2)]
		public long Target { get; set; }
	}
	/// <summary>
	/// 发送消息响应
	/// </summary>
	[ProtoContract]
	public partial class S2C_SendMessageResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_SendMessageResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_SendMessageResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_SendMessageResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_SendMessageResponse; }
		[ProtoMember(1)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 推送消息
	/// </summary>
	[ProtoContract]
	public partial class S2C_Message : AMessage, ICustomRouteMessage, IProto
	{
		public static S2C_Message Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_Message>();
		}
		public override void Dispose()
		{
			Message = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_Message>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_Message; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public ChatMessageInfo Message { get; set; }
	}
	/// <summary>
	/// /////////// ********  工会 *******/////////////
	/// </summary>
	[ProtoContract]
	public partial class ClubInfo : AMessage, IProto
	{
		public static ClubInfo Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<ClubInfo>();
		}
		public override void Dispose()
		{
			Id = default;
			Name = default;
			CreateTime = default;
			OwnerId = default;
			MemberCount = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<ClubInfo>(this);
#endif
		}
		[ProtoMember(1)]
		public long Id { get; set; }
		[ProtoMember(2)]
		public string Name { get; set; }
		[ProtoMember(3)]
		public long CreateTime { get; set; }
		[ProtoMember(4)]
		public long OwnerId { get; set; }
		[ProtoMember(5)]
		public int MemberCount { get; set; }
	}
	/// <summary>
	/// 请求创建工会
	/// </summary>
	[ProtoContract]
	public partial class C2S_CreateClubRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_CreateClubRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_CreateClubRequest>();
		}
		public override void Dispose()
		{
			Name = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_CreateClubRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_CreateClubResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_CreateClubRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public string Name { get; set; }
	}
	/// <summary>
	/// 创建工会响应
	/// </summary>
	[ProtoContract]
	public partial class S2C_CreateClubResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_CreateClubResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_CreateClubResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			Club = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_CreateClubResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_CreateClubResponse; }
		[ProtoMember(1)]
		public ClubInfo Club { get; set; }
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 请求工会信息
	/// </summary>
	[ProtoContract]
	public partial class C2S_GetClubInfoRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_GetClubInfoRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_GetClubInfoRequest>();
		}
		public override void Dispose()
		{
			ClubId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_GetClubInfoRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_GetClubInfoResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_GetClubInfoRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public long ClubId { get; set; }
	}
	/// <summary>
	/// 响应工会信息
	/// </summary>
	[ProtoContract]
	public partial class S2C_GetClubInfoResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_GetClubInfoResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_GetClubInfoResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			Name = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_GetClubInfoResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_GetClubInfoResponse; }
		[ProtoMember(1)]
		public string Name { get; set; }
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	///  请求工会成员列表
	/// </summary>
	[ProtoContract]
	public partial class C2S_GetMemberListRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_GetMemberListRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_GetMemberListRequest>();
		}
		public override void Dispose()
		{
			ClubId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_GetMemberListRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_GetMemberListResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_GetMemberListRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public long ClubId { get; set; }
	}
	/// <summary>
	///  响应工会成员列表
	/// </summary>
	[ProtoContract]
	public partial class S2C_GetMemberListResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_GetMemberListResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_GetMemberListResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			Members.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_GetMemberListResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_GetMemberListResponse; }
		[ProtoMember(1)]
		public List<RoleSimpleInfo> Members = new List<RoleSimpleInfo>();
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 获取工会列表请求
	/// </summary>
	[ProtoContract]
	public partial class C2S_GetClubListRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_GetClubListRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_GetClubListRequest>();
		}
		public override void Dispose()
		{
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_GetClubListRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_GetClubListResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_GetClubListRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
	}
	/// <summary>
	/// 获取工会列表响应
	/// </summary>
	[ProtoContract]
	public partial class S2C_GetClubListResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_GetClubListResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_GetClubListResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			Clubs.Clear();
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_GetClubListResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_GetClubListResponse; }
		[ProtoMember(1)]
		public List<ClubInfo> Clubs = new List<ClubInfo>();
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	///  请求加入工会
	/// </summary>
	[ProtoContract]
	public partial class C2S_JoinClubRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_JoinClubRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_JoinClubRequest>();
		}
		public override void Dispose()
		{
			ClubId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_JoinClubRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_JoinClubResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_JoinClubRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public long ClubId { get; set; }
	}
	/// <summary>
	///  响应加入工会
	/// </summary>
	[ProtoContract]
	public partial class S2C_JoinClubResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_JoinClubResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_JoinClubResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			Club = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_JoinClubResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_JoinClubResponse; }
		[ProtoMember(1)]
		public ClubInfo Club { get; set; }
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	///  请求退出工会
	/// </summary>
	[ProtoContract]
	public partial class C2S_LeaveClubRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_LeaveClubRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_LeaveClubRequest>();
		}
		public override void Dispose()
		{
			ClubId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_LeaveClubRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_LeaveClubResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_LeaveClubRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public long ClubId { get; set; }
	}
	/// <summary>
	///  响应退出工会
	/// </summary>
	[ProtoContract]
	public partial class S2C_LeaveClubResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_LeaveClubResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_LeaveClubResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			ClubId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_LeaveClubResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_LeaveClubResponse; }
		[ProtoMember(1)]
		public long ClubId { get; set; }
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	///  请求解散工会
	/// </summary>
	[ProtoContract]
	public partial class C2S_DissolveClubRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_DissolveClubRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_DissolveClubRequest>();
		}
		public override void Dispose()
		{
			ClubId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_DissolveClubRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_DissolveClubResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_DissolveClubRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public long ClubId { get; set; }
	}
	/// <summary>
	///  响应解散工会
	/// </summary>
	[ProtoContract]
	public partial class S2C_DissolveClubResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_DissolveClubResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_DissolveClubResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			ClubId = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_DissolveClubResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_DissolveClubResponse; }
		[ProtoMember(1)]
		public long ClubId { get; set; }
		[ProtoMember(2)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	///  请求操作申请
	/// </summary>
	[ProtoContract]
	public partial class C2S_DisposeJoinRequest : AMessage, ICustomRouteRequest, IProto
	{
		public static C2S_DisposeJoinRequest Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<C2S_DisposeJoinRequest>();
		}
		public override void Dispose()
		{
			ClubId = default;
			ApplicantId = default;
			Agree = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<C2S_DisposeJoinRequest>(this);
#endif
		}
		[ProtoIgnore]
		public S2C_DisposeJoinResponse ResponseType { get; set; }
		public uint OpCode() { return OuterOpcode.C2S_DisposeJoinRequest; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public long ClubId { get; set; }
		[ProtoMember(2)]
		public long ApplicantId { get; set; }
		[ProtoMember(3)]
		public int Agree { get; set; }
	}
	/// <summary>
	///  响应操作申请
	/// </summary>
	[ProtoContract]
	public partial class S2C_DisposeJoinResponse : AMessage, ICustomRouteResponse, IProto
	{
		public static S2C_DisposeJoinResponse Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_DisposeJoinResponse>();
		}
		public override void Dispose()
		{
			ErrorCode = default;
			ClubId = default;
			ApplicantId = default;
			Agree = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_DisposeJoinResponse>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_DisposeJoinResponse; }
		[ProtoMember(1)]
		public long ClubId { get; set; }
		[ProtoMember(2)]
		public long ApplicantId { get; set; }
		[ProtoMember(3)]
		public int Agree { get; set; }
		[ProtoMember(4)]
		public uint ErrorCode { get; set; }
	}
	/// <summary>
	/// 推送消息
	/// </summary>
	[ProtoContract]
	public partial class S2C_ClubChange : AMessage, ICustomRouteMessage, IProto
	{
		public static S2C_ClubChange Create(Scene scene)
		{
			return scene.MessagePoolComponent.Rent<S2C_ClubChange>();
		}
		public override void Dispose()
		{
			Club = default;
			ChangeType = default;
#if FANTASY_NET || FANTASY_UNITY
			GetScene().MessagePoolComponent.Return<S2C_ClubChange>(this);
#endif
		}
		public uint OpCode() { return OuterOpcode.S2C_ClubChange; }
		[ProtoIgnore]
		public int RouteType => Fantasy.RouteType.SocialRoute;
		[ProtoMember(1)]
		public ClubInfo Club { get; set; }
		[ProtoMember(2)]
		public int ChangeType { get; set; }
	}
}
