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

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

        [StringLength(50)]
        public string? Name { get; set; }

        [StringLength(20)]
        [Column("SHORT_NAME")]
        public string? ShortName { get; set; }

        #region IGNORED COLUMNS
        //[Required]
        //[StringLength(2000)]
        //public string License { get; set; }

        //[Required]
        //[StringLength(20)]
        //public string ProductVersion { get; set; }

        //[Required]
        //[StringLength(20)]
        //public string DbVersion { get; set; }

        //public bool Active { get; set; }

        //[Required]
        //[StringLength(1)]
        //public string VersionDelimiter { get; set; }

        //[Required]
        //[StringLength(1)]
        //public string FileDelimiter { get; set; }

        //public bool Bit1 { get; set; }

        //public bool Bit2 { get; set; }

        //[StringLength(50)]
        //public string? String1 { get; set; }

        //[StringLength(50)]
        //public string? String2 { get; set; }

        //public byte[]? BackgroundImage { get; set; }

        //[Required]
        //[StringLength(200)]
        //public string ProductName1 { get; set; }

        //[StringLength(200)]
        //public string? ProductName2 { get; set; }

        //[Required]
        //[StringLength(500)]
        //public string VersionUpdatePath { get; set; }

        //[Required]
        //public int AutoLogoutUser { get; set; }

        //public bool WmsessionStartstopStartup { get; set; }

        //[Required]
        //[StringLength(10)]
        //public string MinRequiredVersion { get; set; }

        //public bool LicenseValid { get; set; }

        //[StringLength(50)]
        //public string? AddedWho { get; set; }

        //public DateTime? AddedWhen { get; set; }

        //[StringLength(50)]
        //public string? ChangedWho { get; set; }

        //public DateTime? ChangedWhen { get; set; }
        #endregion
    }
}
