using DigitalData.Core.Abstractions;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace DigitalData.UserManager.Domain.Entities
{
    [Table("TBDD_CLIENT_USER", Schema = "dbo")]
    public class ClientUser : IUnique<int>
    {
        [Column("GUID")]
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        [Required]
        [Column("USER_ID")]
        public int UserId { get; init; }

        [Required]
        [Column("CLIENT_ID")]
        public int ClientId { get; init; }

        [Column("COMMENT")]
        public string? Comment { get; init; }

        [StringLength(50)]
        [Column("ADDED_WHO")]
        public string? AddedWho { get; set; }

        [Column("ADDED_WHEN", TypeName = "datetime")]
        [DefaultValue("GETDATE()")]
        public DateTime AddedWhen { get; set; } = DateTime.Now;
    }
}