techgarage-ir.MTWireGuard/Models/Mikrotik/WGPeer.cs

137 lines
4.9 KiB
C#
Raw Normal View History

2023-03-03 23:24:18 +03:30
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
using System.ComponentModel;
namespace MTWireGuard.Models.Mikrotik
{
public class WGPeer
{
[JsonProperty(".id")]
public string Id { get; set; }
[JsonProperty("allowed-address")]
public string AllowedAddress { get; set; }
[JsonProperty("current-endpoint-address")]
public string CurrentEndpointAddress { get; set; }
[JsonProperty("current-endpoint-port")]
public string CurrentEndpointPort { get; set; }
[JsonProperty("disabled")]
public bool Disabled { get; set; }
[JsonProperty("interface")]
public string Interface { get; set; }
[JsonProperty("endpoint-address")]
public string EndpointAddress { get; set; }
[JsonProperty("endpoint-port")]
public string EndpointPort { get; set; }
[JsonProperty("public-key")]
public string PublicKey { get; set; }
[JsonProperty("rx")]
public string RX { get; set; }
[JsonProperty("tx")]
public string TX { get; set; }
}
[PrimaryKey("Id")]
[Index("PrivateKey", IsUnique = true)]
[Index("PublicKey", IsUnique = true)]
public class WGPeerDBModel
{
public int Id { get; set; }
public string? Name { get; set; }
public string PrivateKey { get; set; }
public string PublicKey { get; set; }
}
public class WGPeerViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string CurrentAddress { get; set; }
public bool IsEnabled { get; set; }
public string Interface { get; set; }
public string PrivateKey { get; set; }
public string PublicKey { get; set; }
public string Download { get; set; }
public string Upload { get; set; }
public long DownloadBytes { get; set; }
public long UploadBytes { get; set; }
public bool IsDifferent { get; set; }
}
public class WGPeerCreateModel
{
[JsonProperty("allowed-address")]
public string AllowedAddress { get; set; }
[JsonProperty("disabled")]
public bool Disabled { get; set; }
[JsonProperty("interface")]
public string Interface { get; set; }
[JsonProperty("endpoint-address"), DefaultValue("")]
public string EndpointAddress { get; set; }
[JsonProperty("endpoint-port"), DefaultValue("")]
public string EndpointPort { get; set; }
[JsonProperty("public-key")]
public string PublicKey { get; set; }
[JsonProperty("preshared-key"), DefaultValue("")]
public string PresharedKey { get; set; }
[JsonProperty("persistent-keepalive"), DefaultValue("")]
public string PersistentKeepalive { get; set; }
}
public class WGPeerUpdateModel
{
[JsonProperty(".id")]
public string Id { get; set; }
[JsonProperty("allowed-address"), DefaultValue("")]
public string AllowedAddress { get; set; }
[JsonProperty("interface")]
public string Interface { get; set; }
[JsonProperty("endpoint-address"), DefaultValue("")]
public string EndpointAddress { get; set; }
[JsonProperty("endpoint-port"), DefaultValue(0)]
public ushort EndpointPort { get; set; }
[JsonProperty("public-key"), DefaultValue("")]
public string PublicKey { get; set; }
[JsonProperty("preshared-key"), DefaultValue("")]
public string PresharedKey { get; set; }
[JsonProperty("persistent-keepalive"), DefaultValue(0)]
public int PersistentKeepalive { get; set; }
}
public class UserCreateModel
{
public string Name { get; set; }
public string PrivateKey { get; set; }
public string AllowedAddress { get; set; }
public bool Disabled { get; set; }
public string Interface { get; set; }
public string EndpointAddress { get; set; }
public string EndpointPort { get; set; }
public string PublicKey { get; set; }
public string PresharedKey { get; set; }
public string PersistentKeepalive { get; set; }
}
public class UserSyncModel
{
public int Id { get; set; }
public string Name { get; set; }
public string PrivateKey { get; set; }
public string PublicKey { get; set; }
}
public class UserUpdateModel
{
public int Id { get; set; }
public string Name { get; set; }
public string AllowedAddress { get; set; }
public string Interface { get; set; }
public string EndpointAddress { get; set; }
public ushort EndpointPort { get; set; }
public string PublicKey { get; set; }
public string PrivateKey { get; set; }
public string PresharedKey { get; set; }
public int PersistentKeepalive { get; set; }
}
}