using Lada.Framework.Data.Enums;
using Lada.Framework.DTO;
using Lada.Framework.Infrastructures.Helpers;
using Ladaer.BackEnd.Infrastructures.DTO.Items.Trucks;

namespace Ladaer.BackEnd.Infrastructures.DTO.Items.FuelCards;

public class FuelRefillItem : BaseItem<int>
{
    public int TruckActivityId { get; set; }
    public int TruckId { get; set; }
    public string TruckLicensePlate { get; set; } = string.Empty;
    public int DriverId { get; set; }
    public string DriverName { get; set; } = string.Empty;
    public string DriverFullName { get; set; } = string.Empty;
    public int? FuelCardId { get; set; }
    public string? FuelCardNumber { get; set; }
    
    // ODO Info
    public int PreviousOdo { get; set; }
    public int CurrentOdo { get; set; }
    public int DistanceKm { get; set; }
    
    // Refill Info
    public decimal Amount { get; set; }
    public decimal UnitPrice { get; set; }
    public decimal ActualLiters { get; set; }
    
    // Quota Info
    public decimal FuelQuotaPer100Km { get; set; }
    public decimal QuotaLiters { get; set; }
    public decimal DifferenceLiters { get; set; }
    
    // Other
    public FuelRefillPaymentMethod PaymentMethod { get; set; }
    public string PaymentMethodStr => PaymentMethod.GetDescription();
    public string StationName { get; set; } = string.Empty;
    public string StationAddress { get; set; } = string.Empty;
    public DateTimeOffset RefillTime { get; set; }
    public Guid? FuelCardTransactionId { get; set; }
    public string Notes { get; set; } = string.Empty;
    
    // Media
    public List<TruckActivityMediaItem> MediaItems { get; set; } = new List<TruckActivityMediaItem>();
}
