2017-11-25 20:29:58 -05:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
|
|
2018-04-08 02:44:42 -04:00
|
|
|
|
namespace SharedLibraryCore.Database.Models
|
2017-11-25 20:29:58 -05:00
|
|
|
|
{
|
|
|
|
|
public class EFClient : SharedEntity
|
|
|
|
|
{
|
|
|
|
|
[Key]
|
|
|
|
|
public int ClientId { get; set; }
|
2018-02-10 23:33:42 -05:00
|
|
|
|
public long NetworkId { get; set; }
|
2017-11-25 20:29:58 -05:00
|
|
|
|
[Required]
|
|
|
|
|
public int Connections { get; set; }
|
|
|
|
|
[Required]
|
2018-02-08 02:23:45 -05:00
|
|
|
|
// in seconds
|
2017-11-25 20:29:58 -05:00
|
|
|
|
public int TotalConnectionTime { get; set; }
|
|
|
|
|
[Required]
|
|
|
|
|
public DateTime FirstConnection { get; set; }
|
|
|
|
|
[Required]
|
|
|
|
|
public DateTime LastConnection { get; set; }
|
|
|
|
|
public bool Masked { get; set; }
|
|
|
|
|
[Required]
|
|
|
|
|
public int AliasLinkId { get; set; }
|
|
|
|
|
[ForeignKey("AliasLinkId")]
|
|
|
|
|
public virtual EFAliasLink AliasLink { get; set; }
|
2017-11-29 19:35:50 -05:00
|
|
|
|
[Required]
|
|
|
|
|
public Objects.Player.Permission Level { get; set; }
|
|
|
|
|
|
|
|
|
|
[Required]
|
|
|
|
|
public int CurrentAliasId { get; set; }
|
|
|
|
|
[ForeignKey("CurrentAliasId")]
|
|
|
|
|
public virtual EFAlias CurrentAlias { get; set; }
|
|
|
|
|
|
2018-04-04 15:38:34 -04:00
|
|
|
|
public string Password { get; set; }
|
|
|
|
|
public string PasswordSalt { get; set; }
|
2018-06-02 00:48:10 -04:00
|
|
|
|
// list of meta for the client
|
|
|
|
|
public virtual ICollection<EFMeta> Meta { get; set; }
|
2018-04-04 15:38:34 -04:00
|
|
|
|
|
2017-11-29 19:35:50 -05:00
|
|
|
|
[NotMapped]
|
|
|
|
|
public virtual string Name
|
|
|
|
|
{
|
|
|
|
|
get { return CurrentAlias.Name; }
|
|
|
|
|
set { }
|
|
|
|
|
}
|
|
|
|
|
[NotMapped]
|
2018-02-10 23:33:42 -05:00
|
|
|
|
public virtual int IPAddress
|
2017-11-29 19:35:50 -05:00
|
|
|
|
{
|
|
|
|
|
get { return CurrentAlias.IPAddress; }
|
|
|
|
|
set { }
|
|
|
|
|
}
|
|
|
|
|
|
2018-02-10 23:33:42 -05:00
|
|
|
|
[NotMapped]
|
|
|
|
|
public string IPAddressString => new System.Net.IPAddress(BitConverter.GetBytes(IPAddress)).ToString();
|
2018-05-14 13:55:10 -04:00
|
|
|
|
[NotMapped]
|
|
|
|
|
public virtual IDictionary<int, long> LinkedAccounts { get; set; }
|
2018-02-10 23:33:42 -05:00
|
|
|
|
|
2017-11-25 20:29:58 -05:00
|
|
|
|
public virtual ICollection<EFPenalty> ReceivedPenalties { get; set; }
|
|
|
|
|
public virtual ICollection<EFPenalty> AdministeredPenalties { get; set; }
|
|
|
|
|
|
|
|
|
|
public EFClient()
|
|
|
|
|
{
|
|
|
|
|
ReceivedPenalties = new List<EFPenalty>();
|
|
|
|
|
AdministeredPenalties = new List<EFPenalty>();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|