using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using System.Runtime.Serialization;

#nullable disable

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 燒機記錄資料表
    /// </summary>
    [Table("BURN_INFO", Schema = "JHAMES")]
    public partial class BurnInfo
    {
        /// <summary>
        /// 燒機紀錄ID
        /// </summary>
        [Key]
        [Column("BURN_ID")]
        [DataMember]
        public int BurnID { get; set; }

        /// <summary>
        /// 生產序號ID
        /// </summary>
        [Column("BARCODE_ID")]
        [DataMember]
        public int BarcodeID { get; set; }

        /// <summary>
        /// 工單號碼
        /// </summary>
        [Required]
        [Column("WIP_NO")]
        [StringLength(30)]
        [DataMember]
        public string WipNo { get; set; }

        /// <summary>
        /// 燒機型態(靜態/動態)
        /// </summary>
        [Column("BURN_TYPE")]
        [StringLength(15)]
        [DataMember]
        public string BurnType { get; set; }

        /// <summary>
        /// 燒機臺車編號
        /// </summary>
        [Column("BURN_CAR")]
        [StringLength(10)]
        [DataMember]
        public string BurnCar { get; set; }

        /// <summary>
        /// 計畫燒機時間
        /// </summary>
        [DataMember]
        [Column("BURN_PLAN_HOUR", TypeName = "NUMBER(38,1)")]
        public decimal BurnPlanHour { get; set; }

        /// <summary>
        /// 開始燒機時間
        /// </summary>
        [DataMember]
        [Column("START_TIME", TypeName = "DATE")]
        public DateTime StartTime { get; set; }

        /// <summary>
        /// 排程完成時間
        /// </summary>
        [DataMember]
        [Column("SCHEDULE_FINISH_TIME", TypeName = "DATE")]
        public DateTime ScheduleFinishTime { get; set; }

        /// <summary>
        /// 實際燒機完成時間
        /// </summary>
        [DataMember]
        [Column("FINISH_TIME", TypeName = "DATE")]
        public DateTime? FinishTime { get; set; }

        /// <summary>
        /// BI人員ID
        /// </summary>
        [DataMember]
        [Column("IN_USERID")]
        public int InUserID { get; set; }

        /// <summary>
        /// BO人員ID
        /// </summary>
        [DataMember]
        [Column("OUT_USERID")]
        public int? OutUserID { get; set; } = -1;

        /// <summary>
        /// 狀態
        /// </summary>
        [DataMember]
        [Column("STATUS")]
        public int Status { get; set; } = 0;

        /// <summary>
        /// 燒機區域位置
        /// </summary>
        [DataMember]
        [Column("AREA_CODE")]
        [StringLength(4)]
        public string AreaCode { get; set; }

        /// <summary>
        /// 建立UserID
        /// </summary>
        [Column("CREATE_USERID")]
        [Required]
        [DataMember]
        public int CreateUserID { get; set; } = 0;

        /// <summary>
        /// 建立日期
        /// </summary>
        [Required]
        [Column("CREATE_DATE")]
        [DataMember]
        public DateTime CreateDate { get; set; } = DateTime.Now;

        /// <summary>
        /// 更新UserID
        /// </summary>
        [Column("UPDATE_USERID")]
        [DataMember]
        public int UpdateUserID { get; set; } = 0;

        /// <summary>
        /// 更新日期
        /// </summary>
        [Column("UPDATE_DATE")]
        [DataMember]
        public DateTime? UpdateDate { get; set; } = DateTime.Now;
    }
}