33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace DysonNetwork.Pass.Developer;
|
|
|
|
public class CustomApp
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
[MaxLength(256)] public string Name { get; set; } = null!;
|
|
[MaxLength(4096)] public string Description { get; set; } = null!;
|
|
[MaxLength(1024)] public string Homepage { get; set; } = null!;
|
|
[MaxLength(1024)] public string CallbackUrl { get; set; } = null!;
|
|
[Column(TypeName = "jsonb")] public OauthConfig? OauthConfig { get; set; }
|
|
|
|
public ICollection<CustomAppSecret> Secrets { get; set; } = new List<CustomAppSecret>();
|
|
}
|
|
|
|
public class CustomAppSecret
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
[MaxLength(4096)] public string Secret { get; set; } = null!;
|
|
public bool IsOidc { get; set; } = false;
|
|
public DateTime? ExpiredAt { get; set; }
|
|
|
|
public Guid AppId { get; set; }
|
|
[JsonIgnore] public CustomApp App { get; set; } = null!;
|
|
}
|
|
|
|
public class OauthConfig
|
|
{
|
|
public List<string>? AllowedScopes { get; set; }
|
|
} |