using System;

namespace Nop.Plugin.Misc.FruitBankPlugin.Models.Orders
{
    /// <summary>
    /// Lightweight DTO returned by the FruitBankOrderList endpoint.
    /// Contains only what the grid needs – avoids serialising heavy OrderModel navigation properties.
    /// </summary>
    public record FruitBankOrderRowDto
    {
        public int    Id                           { get; init; }
        public string CustomOrderNumber            { get; init; }
        public string CustomerCompany              { get; init; }
        public int    CustomerId                   { get; init; }

        // FruitBank-specific fields
        public string  InnvoiceTechId              { get; init; }
        public bool    IsAllOrderItemAvgWeightValid { get; init; }
        public bool    IsMeasurable                { get; init; }
        public int     MeasuringStatus             { get; init; }
        public string  MeasuringStatusString       { get; init; }
        public DateTime? DateOfReceipt             { get; init; }

        // NopCommerce order fields
        public int    OrderStatusId                { get; init; }
        public string OrderStatus                  { get; init; }
        public int    PaymentStatusId              { get; init; }
        public string PaymentStatus                { get; init; }
        public int    ShippingStatusId             { get; init; }
        public string ShippingStatus               { get; init; }
        public string StoreName                    { get; init; }
        public DateTime CreatedOn                  { get; init; }
        public string OrderTotal                   { get; init; }
    }
}
