using MTWorkHR.Core.Entities;
using MTWorkHR.Core.Entities.Base;
using MTWorkHR.Core.Global;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MTWorkHR.Core.Entities.User
{
    public class OrderRequest : FullAuditEntity, IHaveCompany
    {
        public DateTime StartDate { get; set; }
        public DateTime? EndDate { get; set; }
        [Required]
        [ForeignKey("OrderTypeId")]
        public OrderType OrderType { get; set; }
        public long OrderTypeId { get; set; }
        [ForeignKey("LeaveTypeId")]
        public LeaveType? LeaveType { get; set; }
        public long? LeaveTypeId { get; set; }
        [Filter]
        public string? RequestComments { get; set; }
        [Filter]
        public string? RequestTitle { get; set; }
        public ApprovalStatusEnum? OrderStatus { get; set; }
        [Filter]
        public string RequestingEmployeeId { get; set; }
     
        public long CompanyId { get; set ; }
        public long? ContractId { get; set ; }
        public decimal? CourseNumberOfHours { get; set; }
        public decimal? CourseCost { get; set; }
        public decimal? TotalDays { get; set; }

        public List<OrderAttachment>? OrderAttachments { get; set; }
        public List<OverTimeDay>? OverTimeDays { get; set; }

        public BusinessTripExpenses? BusinessTripExpenses { get; set; }
        public ServiceCertificate? ServiceCertificate { get; set; }

    }
}
