<?php
/**
 * Sincroniza la columna legacy `estado` con estado_pago y estado_entrega.
 */
class PedidoEstadoHelper
{
    public static function syncLegacyEstado(string $estadoPago, string $estadoEntrega): string
    {
        if ($estadoEntrega === 'CANCELADO') {
            return 'CANCELADO';
        }
        if ($estadoEntrega === 'ENTREGADO') {
            return 'ENTREGADO';
        }
        if ($estadoPago === 'PAGADO') {
            return 'PAGADO';
        }
        return 'PENDIENTE';
    }

    public static function estadoPagoInicial(string $metodoPago): string
    {
        return $metodoPago === 'mercadopago' ? 'PENDIENTE' : 'EFECTIVO_PENDIENTE';
    }

    public static function mapMercadoPagoStatus(string $mpStatus): array
    {
        switch ($mpStatus) {
            case 'approved':
                return ['estado_pago' => 'PAGADO', 'estado_entrega' => 'PENDIENTE'];
            case 'rejected':
            case 'cancelled':
                return ['estado_pago' => 'RECHAZADO', 'estado_entrega' => 'CANCELADO'];
            case 'pending':
            case 'in_process':
            default:
                return ['estado_pago' => 'PENDIENTE', 'estado_entrega' => 'PENDIENTE'];
        }
    }
}
