using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace MTWorkHR.Core.Entities.Base
{
    public class AuditEntity: Entity, IAuditEntity
    {
        [Column(Order = 1)]
        [MaxLength(450)]
        public string? CreateUser { get; set; }
        [Column(Order = 2)]
        [MaxLength(450)]
        public string? UpdateUser { get; set; }
        [Column(Order = 3)]
        public DateTime CreateDate { get; set; }
        [Column(Order = 4)]
        public DateTime? UpdateDate { get; set; }
    }

    public class AuditEntity<TKey> : Entity<TKey>, IAuditEntity<TKey> where TKey : Type
    {
        [MaxLength(450)]
        [Column(Order = 1)]
        public string? CreateUser { get; set; }
        [MaxLength(450)]
        [Column(Order = 3)]
        public string? UpdateUser { get; set; }
        [Column(Order = 5)]
        public DateTime CreateDate { get; set; }
        [Column(Order = 6)]
        public DateTime? UpdateDate { get; set; }
    }
}
