//
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
//
namespace MUnique.OpenMU.DataModel.Configuration;
using MUnique.OpenMU.Annotations;
///
/// Settings for the chat server.
///
[AggregateRoot]
[Cloneable]
public partial class ChatServerDefinition
{
///
/// Gets or sets the server identifier.
///
public byte ServerId { get; set; }
///
/// Gets or sets the description.
///
public string Description { get; set; } = string.Empty;
///
/// Gets or sets the maximum connections.
///
public int MaximumConnections { get; set; } = int.MaxValue;
///
/// Gets or sets the client timeout. When a client did not send any data in this timespan, it's automatically disconnected.
///
///
/// The client timeout.
///
public TimeSpan ClientTimeout { get; set; } = TimeSpan.FromMinutes(1);
///
/// Gets or sets the interval in which a client clean up takes place.
/// For all connected clients it's checked whether or not the has been reached.
///
public TimeSpan ClientCleanUpInterval { get; set; } = TimeSpan.FromMinutes(1);
///
/// Gets or sets the interval in which empty chat rooms are cleaned up.
///
public TimeSpan RoomCleanUpInterval { get; set; } = TimeSpan.FromSeconds(5);
///
/// Gets or sets the endpoints of the game server.
///
[MemberOfAggregate]
public virtual ICollection Endpoints { get; protected set; } = null!;
///
public override string ToString()
{
return $"[ChatServerDefinition ServerID={this.ServerId}, Description={this.Description}]";
}
}