// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: bgs/low/pb/client/user_manager_types.proto
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = Google.Protobuf;
using pbc = Google.Protobuf.Collections;
using pbr = Google.Protobuf.Reflection;
namespace Bgs.Protocol.UserManager.V1
{

    /// <summary>Holder for reflection information generated from bgs/low/pb/client/user_manager_types.proto</summary>
    [System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public static partial class UserManagerTypesReflection {

    #region Descriptor
    /// <summary>File descriptor for bgs/low/pb/client/user_manager_types.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static UserManagerTypesReflection() {
      byte[] descriptorData = System.Convert.FromBase64String(
          string.Concat(
            "CipiZ3MvbG93L3BiL2NsaWVudC91c2VyX21hbmFnZXJfdHlwZXMucHJvdG8S",
            "HGJncy5wcm90b2NvbC51c2VyX21hbmFnZXIudjEaJGJncy9sb3cvcGIvY2xp",
            "ZW50L2VudGl0eV90eXBlcy5wcm90bxonYmdzL2xvdy9wYi9jbGllbnQvYXR0",
            "cmlidXRlX3R5cGVzLnByb3RvIq4BCgxSZWNlbnRQbGF5ZXISKQoJZW50aXR5",
            "X2lkGAEgASgLMhYuYmdzLnByb3RvY29sLkVudGl0eUlkEg8KB3Byb2dyYW0Y",
            "AiABKAkSGAoQdGltZXN0YW1wX3BsYXllZBgDIAEoBhIrCgphdHRyaWJ1dGVz",
            "GAQgAygLMhcuYmdzLnByb3RvY29sLkF0dHJpYnV0ZRIKCgJpZBgFIAEoBxIP",
            "Cgdjb3VudGVyGAYgASgHIm8KDUJsb2NrZWRQbGF5ZXISKgoKYWNjb3VudF9p",
            "ZBgBIAEoCzIWLmJncy5wcm90b2NvbC5FbnRpdHlJZBIMCgRuYW1lGAIgASgJ",
            "EhAKBHJvbGUYAyADKA1CAhABEhIKCnByaXZpbGVnZXMYBCABKARCAkgCYgZw",
            "cm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { Bgs.Protocol.EntityTypesReflection.Descriptor, Bgs.Protocol.AttributeTypesReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(Bgs.Protocol.UserManager.V1.RecentPlayer), Bgs.Protocol.UserManager.V1.RecentPlayer.Parser, new[]{ "EntityId", "Program", "TimestampPlayed", "Attributes", "Id", "Counter" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(Bgs.Protocol.UserManager.V1.BlockedPlayer), Bgs.Protocol.UserManager.V1.BlockedPlayer.Parser, new[]{ "AccountId", "Name", "Role", "Privileges" }, null, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  [System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class RecentPlayer : pb::IMessage<RecentPlayer> {
    private static readonly pb::MessageParser<RecentPlayer> _parser = new pb::MessageParser<RecentPlayer>(() => new RecentPlayer());
    public static pb::MessageParser<RecentPlayer> Parser { get { return _parser; } }

    public static pbr::MessageDescriptor Descriptor {
      get { return Bgs.Protocol.UserManager.V1.UserManagerTypesReflection.Descriptor.MessageTypes[0]; }
    }

    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    public RecentPlayer() {
      OnConstruction();
    }

    partial void OnConstruction();

    public RecentPlayer(RecentPlayer other) : this() {
      EntityId = other.entityId_ != null ? other.EntityId.Clone() : null;
      program_ = other.program_;
      timestampPlayed_ = other.timestampPlayed_;
      attributes_ = other.attributes_.Clone();
      id_ = other.id_;
      counter_ = other.counter_;
    }

    public RecentPlayer Clone() {
      return new RecentPlayer(this);
    }

    /// <summary>Field number for the "entity_id" field.</summary>
    public const int EntityIdFieldNumber = 1;
    private Bgs.Protocol.EntityId entityId_;
    public Bgs.Protocol.EntityId EntityId {
      get { return entityId_; }
      set {
        entityId_ = value;
      }
    }

    /// <summary>Field number for the "program" field.</summary>
    public const int ProgramFieldNumber = 2;
    private string program_ = "";
    public string Program {
      get { return program_; }
      set {
        program_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "timestamp_played" field.</summary>
    public const int TimestampPlayedFieldNumber = 3;
    private ulong timestampPlayed_;
    public ulong TimestampPlayed {
      get { return timestampPlayed_; }
      set {
        timestampPlayed_ = value;
      }
    }

    /// <summary>Field number for the "attributes" field.</summary>
    public const int AttributesFieldNumber = 4;
    private static readonly pb::FieldCodec<Bgs.Protocol.Attribute> _repeated_attributes_codec
        = pb::FieldCodec.ForMessage(34, Bgs.Protocol.Attribute.Parser);
    private readonly pbc::RepeatedField<Bgs.Protocol.Attribute> attributes_ = new pbc::RepeatedField<Bgs.Protocol.Attribute>();
    public pbc::RepeatedField<Bgs.Protocol.Attribute> Attributes {
      get { return attributes_; }
    }

    /// <summary>Field number for the "id" field.</summary>
    public const int IdFieldNumber = 5;
    private uint id_;
    public uint Id {
      get { return id_; }
      set {
        id_ = value;
      }
    }

    /// <summary>Field number for the "counter" field.</summary>
    public const int CounterFieldNumber = 6;
    private uint counter_;
    public uint Counter {
      get { return counter_; }
      set {
        counter_ = value;
      }
    }

    public override bool Equals(object other) {
      return Equals(other as RecentPlayer);
    }

    public bool Equals(RecentPlayer other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(EntityId, other.EntityId)) return false;
      if (Program != other.Program) return false;
      if (TimestampPlayed != other.TimestampPlayed) return false;
      if(!attributes_.Equals(other.attributes_)) return false;
      if (Id != other.Id) return false;
      if (Counter != other.Counter) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 1;
      if (entityId_ != null) hash ^= EntityId.GetHashCode();
      if (Program.Length != 0) hash ^= Program.GetHashCode();
      if (TimestampPlayed != 0UL) hash ^= TimestampPlayed.GetHashCode();
      hash ^= attributes_.GetHashCode();
      if (Id != 0) hash ^= Id.GetHashCode();
      if (Counter != 0) hash ^= Counter.GetHashCode();
      return hash;
    }

    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    public void WriteTo(pb::CodedOutputStream output) {
      if (entityId_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(EntityId);
      }
      if (Program.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Program);
      }
      if (TimestampPlayed != 0UL) {
        output.WriteRawTag(25);
        output.WriteFixed64(TimestampPlayed);
      }
      attributes_.WriteTo(output, _repeated_attributes_codec);
      if (Id != 0) {
        output.WriteRawTag(45);
        output.WriteFixed32(Id);
      }
      if (Counter != 0) {
        output.WriteRawTag(53);
        output.WriteFixed32(Counter);
      }
    }

    public int CalculateSize() {
      int size = 0;
      if (entityId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(EntityId);
      }
      if (Program.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Program);
      }
      if (TimestampPlayed != 0UL) {
        size += 1 + 8;
      }
      size += attributes_.CalculateSize(_repeated_attributes_codec);
      if (Id != 0) {
        size += 1 + 4;
      }
      if (Counter != 0) {
        size += 1 + 4;
      }
      return size;
    }

    public void MergeFrom(RecentPlayer other) {
      if (other == null) {
        return;
      }
      if (other.entityId_ != null) {
        if (entityId_ == null) {
          entityId_ = new Bgs.Protocol.EntityId();
        }
        EntityId.MergeFrom(other.EntityId);
      }
      if (other.Program.Length != 0) {
        Program = other.Program;
      }
      if (other.TimestampPlayed != 0UL) {
        TimestampPlayed = other.TimestampPlayed;
      }
      attributes_.Add(other.attributes_);
      if (other.Id != 0) {
        Id = other.Id;
      }
      if (other.Counter != 0) {
        Counter = other.Counter;
      }
    }

    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (entityId_ == null) {
              entityId_ = new Bgs.Protocol.EntityId();
            }
            input.ReadMessage(entityId_);
            break;
          }
          case 18: {
            Program = input.ReadString();
            break;
          }
          case 25: {
            TimestampPlayed = input.ReadFixed64();
            break;
          }
          case 34: {
            attributes_.AddEntriesFrom(input, _repeated_attributes_codec);
            break;
          }
          case 45: {
            Id = input.ReadFixed32();
            break;
          }
          case 53: {
            Counter = input.ReadFixed32();
            break;
          }
        }
      }
    }

  }

  [System.Diagnostics.DebuggerNonUserCodeAttribute()]
  public sealed partial class BlockedPlayer : pb::IMessage<BlockedPlayer> {
    private static readonly pb::MessageParser<BlockedPlayer> _parser = new pb::MessageParser<BlockedPlayer>(() => new BlockedPlayer());
    public static pb::MessageParser<BlockedPlayer> Parser { get { return _parser; } }

    public static pbr::MessageDescriptor Descriptor {
      get { return Bgs.Protocol.UserManager.V1.UserManagerTypesReflection.Descriptor.MessageTypes[1]; }
    }

    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    public BlockedPlayer() {
      OnConstruction();
    }

    partial void OnConstruction();

    public BlockedPlayer(BlockedPlayer other) : this() {
      AccountId = other.accountId_ != null ? other.AccountId.Clone() : null;
      name_ = other.name_;
      role_ = other.role_.Clone();
      privileges_ = other.privileges_;
    }

    public BlockedPlayer Clone() {
      return new BlockedPlayer(this);
    }

    /// <summary>Field number for the "account_id" field.</summary>
    public const int AccountIdFieldNumber = 1;
    private Bgs.Protocol.EntityId accountId_;
    public Bgs.Protocol.EntityId AccountId {
      get { return accountId_; }
      set {
        accountId_ = value;
      }
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 2;
    private string name_ = "";
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "role" field.</summary>
    public const int RoleFieldNumber = 3;
    private static readonly pb::FieldCodec<uint> _repeated_role_codec
        = pb::FieldCodec.ForUInt32(26);
    private readonly pbc::RepeatedField<uint> role_ = new pbc::RepeatedField<uint>();
    public pbc::RepeatedField<uint> Role {
      get { return role_; }
    }

    /// <summary>Field number for the "privileges" field.</summary>
    public const int PrivilegesFieldNumber = 4;
    private ulong privileges_;
    public ulong Privileges {
      get { return privileges_; }
      set {
        privileges_ = value;
      }
    }

    public override bool Equals(object other) {
      return Equals(other as BlockedPlayer);
    }

    public bool Equals(BlockedPlayer other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(AccountId, other.AccountId)) return false;
      if (Name != other.Name) return false;
      if(!role_.Equals(other.role_)) return false;
      if (Privileges != other.Privileges) return false;
      return true;
    }

    public override int GetHashCode() {
      int hash = 1;
      if (accountId_ != null) hash ^= AccountId.GetHashCode();
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      hash ^= role_.GetHashCode();
      if (Privileges != 0UL) hash ^= Privileges.GetHashCode();
      return hash;
    }

    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    public void WriteTo(pb::CodedOutputStream output) {
      if (accountId_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(AccountId);
      }
      if (Name.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Name);
      }
      role_.WriteTo(output, _repeated_role_codec);
      if (Privileges != 0UL) {
        output.WriteRawTag(32);
        output.WriteUInt64(Privileges);
      }
    }

    public int CalculateSize() {
      int size = 0;
      if (accountId_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AccountId);
      }
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      size += role_.CalculateSize(_repeated_role_codec);
      if (Privileges != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Privileges);
      }
      return size;
    }

    public void MergeFrom(BlockedPlayer other) {
      if (other == null) {
        return;
      }
      if (other.accountId_ != null) {
        if (accountId_ == null) {
          accountId_ = new Bgs.Protocol.EntityId();
        }
        AccountId.MergeFrom(other.AccountId);
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      role_.Add(other.role_);
      if (other.Privileges != 0UL) {
        Privileges = other.Privileges;
      }
    }

    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            input.SkipLastField();
            break;
          case 10: {
            if (accountId_ == null) {
              accountId_ = new Bgs.Protocol.EntityId();
            }
            input.ReadMessage(accountId_);
            break;
          }
          case 18: {
            Name = input.ReadString();
            break;
          }
          case 26:
          case 24: {
            role_.AddEntriesFrom(input, _repeated_role_codec);
            break;
          }
          case 32: {
            Privileges = input.ReadUInt64();
            break;
          }
        }
      }
    }

  }

  #endregion

}

#endregion Designer generated code
