using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LSFE.Infrastructure.Dto
{
    public class PlanningDto
    {
        public class SelectedSampleDto
        {
            public Guid InventoryId { get; set; }
            public string? Description { get; set; }
            public int MaxQty { get; set; }
            public int OriginalQty { get; set; }
            public int QtyBalance { get; set; }
            public int SelectedQty { get; set; }
        }
        public class SelectedPromoDto
        {
            public int ProductId { get; set; }
            public string? ProductName { get; set; }
        }

        public List<SelectedSampleDto> SelectedSamples { get; set; } = new();
        public List<SelectedPromoDto> SelectedPromos { get; set; } = new();
        public string? MRPlanDetailId { get; set; }=null;
        public int DoctorId { get; set; }
        [DataType(DataType.Date)]
        public DateOnly PlanDate { get; set; }
        public int DivisionId { get; set; }
        public bool IsActive { get; set; }
        public string? MRRawPlanId { get; set; } = null;
        public int ProductId { get; set; }
        [DataType(DataType.Date)]
        public DateOnly CallDate { get; set; }
        public string? RescheduleReason { get; set; }
        public string? CallType { get; set; }
        public byte CycleId { get; set; }
        public bool IsApproved { get; set; } = false;
        public bool IsRecovered { get; set; } = false;
        public bool IsLiterature { get; set; }     
        public string? SLP { get; set; }
        public byte IsUpdateDelete { get; set; }
        public string? MRPlanDate { get; set; }
        public string? UpdatedBy { get; set; }
        public string? UserId { get; set; }
        public byte CycleMonth { get; set; }
        public int CycleYear { get; set; }
        public DateOnly MonthPlanCopy { get; set; }
        public DateOnly NewMonthPlan { get; set; }
    }
}
