using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace IdentityShroud.Core.Model;
[Table("client")]
[Index(nameof(ClientId), IsUnique = true)]
public class Client
{
[Key]
public int Id { get; set; }
public Guid RealmId { get; set; }
[MaxLength(40)]
public required string ClientId { get; set; }
[MaxLength(80)]
public string? Name { get; set; }
[MaxLength(2048)]
public string? Description { get; set; }
[MaxLength(20)]
public JwtSigAlgName? SignatureAlgorithm { get; set; }
///
/// Enables confidential flows
///
public bool Confidential { get; set; }
///
/// Enables the client credentials flow which required Confidential to be true too.
///
public bool AllowClientCredentialsFlow { get; set; } = false;
public required DateTime CreatedAt { get; set; }
public List Secrets { get; set; } = [];
}