<template>
  <UCard class="brand-card border border-transparent">
    <template #header>
      <h2 class="text-xl font-bold brand-section-title">Totales Netos de Verde</h2>
    </template>

    <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
      <MetricCard
        label="Total Lb Neto de Verde"
        :value="formatNumber(metrics.totalLbNetoVerde.value)"
        unit="lb"
      />
      <MetricCard
        label="Precio Promedio Ponderado Pagado"
        :value="formatNumber(metrics.precioPromedioVerdePagado.value)"
        unit="L./lb"
      />
      <MetricCard
        label="Total Lb Neto de Verde en Depósito"
        :value="formatNumber(metrics.totalLbNetoVerdeDeposito.value)"
        unit="lb"
        variant="info"
      />
      <MetricCard
        label="Inversión en Verde Hasta la Fecha"
        :value="formatCurrency(metrics.inversionVerdeHastaFecha.value)"
        variant="success"
      />
      <MetricCard
        label="Inversión Restante a Realizar en Verde"
        :value="formatCurrency(metrics.inversionRestanteVerde.value)"
        variant="warning"
      />
      <MetricCard
        label="Total Lb Neto Comprado de Verde"
        :value="formatNumber(metrics.totalLbNetoCompradoVerde.value)"
        unit="lb"
      />
    </div>
  </UCard>
</template>

<script setup lang="ts">
import type { IngresosMetrics } from '~/composables/useIngresosMetrics'

defineProps<{
  metrics: IngresosMetrics
}>()

const formatNumber = (value: number) => {
  return value.toLocaleString('en-US', {
    minimumFractionDigits: 2,
    maximumFractionDigits: 2
  })
}

const formatCurrency = (value: number) => {
  return new Intl.NumberFormat('es-HN', {
    style: 'currency',
    currency: 'HNL',
    minimumFractionDigits: 2,
    maximumFractionDigits: 2
  }).format(value).replace('HNL', 'L')
}
</script>