using Ladaer.BackEnd.Infrastructures.DTO.Items.Orders;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Orders
{
    /// <summary>
    /// Model cập nhật kiện hàng với thông tin đơn vị đo
    /// </summary>
    public class UpdateOrderPackageWithUnitsModel
    {
        /// <summary>
        /// ID của đơn hàng
        /// </summary>
        public int OrderId { get; set; }

        /// <summary>
        /// Danh sách kiện hàng với thông tin đơn vị đo
        /// </summary>
        public List<OrderPackageResponseItem> Packages { get; set; } = new List<OrderPackageResponseItem>();

        /// <summary>
        /// Thông tin tổng hợp về đơn vị đo được sử dụng
        /// </summary>
        public UnitInformation UnitInfo { get; set; } = new UnitInformation();
    }

    /// <summary>
    /// Thông tin về đơn vị đo được sử dụng trong hệ thống
    /// </summary>
    public class UnitInformation
    {
        /// <summary>
        /// Đơn vị trọng lượng hiển thị cho client
        /// </summary>
        public string WeightUnit { get; set; } = "kg";

        /// <summary>
        /// Đơn vị kích thước hiển thị cho client
        /// </summary>
        public string DimensionUnit { get; set; } = "cm";

        /// <summary>
        /// Đơn vị trọng lượng lưu trong database
        /// </summary>
        public string DatabaseWeightUnit { get; set; } = "gram";

        /// <summary>
        /// Đơn vị kích thước lưu trong database
        /// </summary>
        public string DatabaseDimensionUnit { get; set; } = "mm";

        /// <summary>
        /// Hệ số chuyển đổi trọng lượng (client -> database)
        /// </summary>
        public int WeightConversionFactor { get; set; } = 1000;

        /// <summary>
        /// Hệ số chuyển đổi kích thước (client -> database)
        /// </summary>
        public int DimensionConversionFactor { get; set; } = 10;
    }
}
