using Lada.Framework.DTO;
using Ladaer.BackEnd.Infrastructures.DTO.Reports.Items.Operations;
using System.Linq;

namespace Ladaer.BackEnd.Infrastructures.DTO.Reports.Results
{
    /// <summary>
    /// Kết quả báo cáo năng suất lái xe theo ngày
    /// </summary>
    public class DriverProductivityReportByDateResult : BaseResult
    {
        private List<DriverProductivityGroupItem> _items = new List<DriverProductivityGroupItem>();

        public List<DriverProductivityGroupItem> Items
        {
            get => _items;
            set
            {
                _items = value ?? new List<DriverProductivityGroupItem>();
                UpdateTotalItem();
            }
        }

        public DriverProductivityGroupItem DriverProductivityTotalItem { get; private set; } = new DriverProductivityGroupItem();
        public double TotalRecord { get; set; }

        /// <summary>
        /// Cập nhật item tổng hợp từ danh sách items
        /// </summary>
        private void UpdateTotalItem()
        {
            if (_items == null || !_items.Any())
            {
                DriverProductivityTotalItem = new DriverProductivityGroupItem();
                return;
            }

            DriverProductivityTotalItem = new DriverProductivityGroupItem
            {
                DriverId = 0, // ID = 0 để đánh dấu là dòng tổng hợp
                DriverUserName = "",
                DriverFullName = "TỔNG CỘNG",
                PickupCount = _items.Sum(x => x.PickupCount),
                DeliveryCount = _items.Sum(x => x.DeliveryCount),
                TotalCount = _items.Sum(x => x.TotalCount),
                DailyDetails = new List<DriverProductivityReportByDateItem>()
            };
        }
    }
}
