@using CarCareTracker.Helper
@inject IConfigHelper config
@inject IGasHelper gasHelper
@model GasRecordViewModelContainer
@{
    var userConfig = config.GetUserConfig(User);
    var enableCsvImports = userConfig.EnableCsvImports;
    var useMPG = userConfig.UseMPG;
    var useUKMPG = userConfig.UseUKMPG;
    var hideZero = userConfig.HideZero;
    var useThreeDecimals = userConfig.UseThreeDecimalGasCost;
    var gasCostFormat = useThreeDecimals ? "C3" : "C2";
    var useKwh = Model.UseKwh;
    string consumptionUnit;
    string fuelEconomyUnit;
    string distanceUnit = useMPG ? "mi." : "km";
    if (useKwh)
    {
        consumptionUnit = "kWh";
        fuelEconomyUnit = useMPG ? "mi./kWh" : "kWh/100km";
    }
    else if (useMPG && useUKMPG)
    {
        consumptionUnit = "imp gal";
        fuelEconomyUnit = "mpg";
    } else if (useUKMPG)
    {
        fuelEconomyUnit = "l/100mi.";
        consumptionUnit = "l";
        distanceUnit = "mi.";
    }
    else
    {
        consumptionUnit = useMPG ? "US gal" : "l";
        fuelEconomyUnit = useMPG ? "mpg" : "l/100km";
    }
}
<div class="row">
    <div class="d-flex justify-content-between">
        <div class="d-flex align-items-center flex-wrap">
            <span class="ms-2 badge bg-success">@($"# of Gas Records: {Model.GasRecords.Count()}")</span>
            @if (Model.GasRecords.Where(x => x.MilesPerGallon > 0).Any())
            {
                <span class="ms-2 badge bg-primary">@($"Average Fuel Economy: {gasHelper.GetAverageGasMileage(Model.GasRecords)}")</span>
                <span class="ms-2 badge bg-primary">@($"Min Fuel Economy: {Model.GasRecords.Where(y => y.MilesPerGallon > 0)?.Min(x => x.MilesPerGallon).ToString("F") ?? "0"}")</span>
                <span class="ms-2 badge bg-primary">@($"Max Fuel Economy: {Model.GasRecords.Max(x => x.MilesPerGallon).ToString("F") ?? "0"}")</span>
            }
            <span class="ms-2 badge bg-success">@($"Total Fuel Consumed: {Model.GasRecords.Sum(x => x.Gallons).ToString("F")}")</span>
            <span class="ms-2 badge bg-success">@($"Total Cost: {Model.GasRecords.Sum(x => x.Cost).ToString(gasCostFormat)}")</span>
        </div>
        @if (enableCsvImports)
        {
            <div class="btn-group">
                <button onclick="showAddGasRecordModal()" class="btn btn-primary btn-md mt-1 mb-1"><i class="bi bi-pencil-square me-2"></i>Add Gas Record</button>
                <button type="button" class="btn btn-md btn-primary btn-md mt-1 mb-1 dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
                    <span class="visually-hidden">Toggle Dropdown</span>
                </button>
                <ul class="dropdown-menu">
                    <li><a class="dropdown-item" href="#" onclick="showBulkImportModal('GasRecord')">Import via CSV</a></li>
                    <li><a class="dropdown-item" href="#" onclick="exportVehicleData('GasRecord')">Export to CSV</a></li>
                </ul>
            </div>
        } else {
            <button onclick="showAddGasRecordModal()" class="btn btn-primary btn-md mt-1 mb-1"><i class="bi bi-pencil-square me-2"></i>Add Gas Record</button>
        }
    </div>
</div>
<div class="row vehicleDetailTabContainer">
    <div class="col-12">
        <div class="row mt-2 showOnPrint">
            <div class="d-flex">
                <img src="/defaults/lubelogger_logo.png" />
            </div>
        </div>
        <table class="table table-hover">
            <thead class="sticky-top">
                <tr class="d-flex">
                    <th scope="col" class="col-2">Date Refueled</th>
                    <th scope="col" class="col-2">Odometer(@(distanceUnit))</th>
                    <th scope="col" class="col-2">Consumption(@(consumptionUnit))</th>
                    <th scope="col" class="col-4">Fuel Economy(@(fuelEconomyUnit))</th>
                    <th scope="col" class="col-1">Cost</th>
                    <th scope="col" class="col-1">Unit Cost</th>
                </tr>
            </thead>
            <tbody>
                @foreach (GasRecordViewModel gasRecord in Model.GasRecords)
                {
                    <tr class="d-flex" style="cursor:pointer;" onclick="showEditGasRecordModal(@gasRecord.Id)">
                        <td class="col-2">@gasRecord.Date</td>
                        <td class="col-2">@gasRecord.Mileage</td>
                        <td class="col-2">@gasRecord.Gallons.ToString("F")</td>
                        <td class="col-4">@(gasRecord.MilesPerGallon == 0 ? "---" : gasRecord.MilesPerGallon.ToString("F"))</td>
                        <td class="col-1">@((hideZero && gasRecord.Cost == default) ? "---" : gasRecord.Cost.ToString(gasCostFormat))</td>
                        <td class="col-1">@((hideZero && gasRecord.CostPerGallon == default) ? "---" : gasRecord.CostPerGallon.ToString(gasCostFormat))</td>
                    </tr>
                }
            </tbody>
        </table>
    </div>
</div>


<div class="modal fade" data-bs-focus="false" id="gasRecordModal" tabindex="-1" role="dialog" aria-hidden="true">
    <div class="modal-dialog modal-lg" role="document">
        <div class="modal-content" id="gasRecordModalContent">

        </div>
    </div>
</div>