using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;

namespace BMA.EHR.Recurit.Exam.Service.Models
{
    public class EntityBase
    {
        [Key, Column(Order = 0), Comment("PrimaryKey")]
        [JsonPropertyName("id")]
        public Guid Id { get; set; }

        [Required, Column(Order = 100), Comment("สร้างข้อมูลเมื่อ")]
        public DateTime CreatedAt { get; set; } = DateTime.Now;

        [Column(Order = 101), Comment("User Id ที่สร้างข้อมูล"), MaxLength(40)]
        public string CreatedUserId { get; set; } = string.Empty;

        [Column(Order = 102), Comment("แก้ไขข้อมูลล่าสุดเมื่อ")]
        public DateTime? LastUpdatedAt { get; set; }

        [Column(Order = 103), Comment("User Id ที่แก้ไขข้อมูลล่าสุด"), MaxLength(40)]
        public string LastUpdateUserId { get; set; } = string.Empty;

        [Column(Order = 104), Comment("ชื่อ User ที่สร้างข้อมูล"), MaxLength(200)]
        public string CreatedFullName { get; set; } = string.Empty;

        [Column(Order = 105), Comment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"), MaxLength(200)]
        public string LastUpdateFullName { get; set; } = string.Empty;

        // [Column(Order = 106), Comment("สถานะการใช้งาน")]
        // public bool IsActive { get; set; } = true;
    }
}
