<?php

abstract class Type_GetnetBandeira extends EnumBasic{
    const Tp_Mastercard  = 1 ;
    const Tp_Visa        = 2 ;
    const Tp_Amex        = 3 ;
    const Tp_Elo         = 4 ;
    const Tp_Hipercard   = 5 ;

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

abstract class Type_GetnetDesconto extends EnumBasic
{
  const Tp_Fixo = 1;
  const Tp_Porcentagem = 0;

  protected static $nickname = array(
    self::Tp_Fixo => 'Valor Fixo',
    self::Tp_Porcentagem => 'Percentual do Pedido'
  );
}

abstract class Type_GetnetPagamentoStatus extends EnumBasic{
    const Tp_Pendente     = 'PENDING';
    const Tp_Negado       = 'DENIED';
    const Tp_Erro         = 'ERROR';
    const Tp_Pago         = 'PAID';
    const Tp_Cancelado    = 'CANCELED';
    const Tp_Waiting      = 'WAITING';

    const Tp_Aprovado     = 'APPROVED';
    const Tp_Reprovado    = 'NOT APPROVED';

    protected static $nickname = array(
        self::Tp_Pendente  => 'Aguardando Pagamento',
        self::Tp_Negado    => 'Negado',
        self::Tp_Erro      => 'Em erro',
        self::Tp_Pago      => 'Pago',
        self::Tp_Cancelado => 'Cancelado',
        self::Tp_Waiting   => 'Esperando',

        self::Tp_Aprovado  => 'Aprovado',
        self::Tp_Reprovado => 'Reprovado',
    );
}

abstract class Type_GetnetConfigs extends EnumBasic
{
    const Tp_NameModule    = 'getnet';
    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_GetnetFingerPrint extends EnumBasic{
    const Tp_Teste     = '1snn5n9w';
    const Tp_Producao  = 'k8vif92e';

    protected static $nickname = array(
        self::Tp_Teste    => 'Teste',
        self::Tp_Producao => 'Producao',
    );
}

abstract class Type_GetnetTipoTransacao extends EnumBasic{
    const Tp_Avista             = 'FULL';
    const Tp_ParceladoSemJuros  = 'INSTALL_NO_INTEREST';
    const Tp_ParceladoComJuros  = 'INSTALL_WITH_INTEREST';

    protected static $nickname = array(
        self::Tp_Avista            => 'À vista',
        self::Tp_ParceladoSemJuros => 'Parcelado sem juros',
        self::Tp_ParceladoComJuros => 'Parcelado com juros',
    );
}