<?php

abstract class Type_OrderStatusPagseguro extends EnumBasic{
    const Tp_PedidoAbandonado    = 0 ;
    const Tp_AguardandoPagamento = 1 ;
    const Tp_Processando         = 2 ;
    const Tp_Processado          = 3 ;
    const Tp_Completo            = 4 ;
    const Tp_Disputa             = 5 ;
    const Tp_Reembolsado         = 6 ;
    const Tp_Cancelado           = 7 ;
    const Tp_Debitado            = 8 ;
    const Tp_Retencao            = 9 ;

    protected static $nickname = array(
      self::Tp_PedidoAbandonado      => 'Pedido Abandonado',
      self::Tp_AguardandoPagamento   => 'Aguardando Pagamento',
      self::Tp_Processando           => 'Processando',
      self::Tp_Processado            => 'Processado',
      self::Tp_Completo              => 'Completo',
      self::Tp_Disputa               => 'Em Disputa',
      self::Tp_Reembolsado           => 'Reembolsado',
      self::Tp_Cancelado             => 'Cancelado',
      self::Tp_Debitado              => 'Valor Devolvido',
      self::Tp_Retencao              => 'Retenção Temporaria'
    );
}

abstract class Type_PagseguroConfigs extends EnumBasic
{
    const Tp_NameModule    = 'pagseguro_api';
    const Tp_MaximoParcela = '12';

    protected static $nickname = array(
        self::Tp_NameModule => 'Usado para identificar qual o metodo de pagamento que foi escolhido',
        self::Tp_MaximoParcela => 'Quantidade maxima de parcelas que o pedido pode ser dividido',
    );
}

abstract class Type_PagseguroBandeira extends EnumBasic{
    const Tp_Mastercard  = 1 ;
    const Tp_Visa        = 2 ;
    const Tp_Amex        = 3 ;
    const Tp_Elo         = 4 ;
    const Tp_Hipercard   = 5 ;
    const Tp_Hiper       = 6 ;
    const Tp_Diners      = 7 ;

    protected static $nickname = array(
        self::Tp_Mastercard => 'mastercard',
        self::Tp_Visa       => 'visa',
        self::Tp_Amex       => 'amex',
        self::Tp_Elo        => 'elo',
        self::Tp_Hipercard  => 'hipercard',
        self::Tp_Hiper      => 'hiper',
        self::Tp_Diners     => 'diners',
    );
}

abstract class Type_PagseguroPagamentoStatus extends EnumBasic{
    const Tp_Pendente   = 'WAITING';
    const Tp_Autorizado = 'AUTHORIZED';
    const Tp_Pago       = 'PAID';
    const Tp_Negado     = 'DECLINED';
    const Tp_Cancelado  = 'CANCELED';

    protected static $nickname = array(
        self::Tp_Pendente   => 'Aguardando Pagamento',
        self::Tp_Autorizado => 'Autorizado',
        self::Tp_Pago       => 'Pago',
        self::Tp_Negado     => 'Negado',
        self::Tp_Cancelado  => 'Cancelado',
    );
}

abstract class Type_PagseguroPagamento extends EnumBasic{
    const Tp_CreditCard   = 'CREDIT_CARD';
    const Tp_Billet       = 'BOLETO';

    protected static $nickname = array(
        self::Tp_CreditCard => 'Cartão de Crédito',
        self::Tp_Billet     => 'Boleto',
    );
}