<?php

abstract class Type_FormPgtoWirecardBoleto extends EnumBasic
{
  const Tp_Boleto = 6;

  protected static $nickname = array(
    self::Tp_Boleto => 'Boleto',
  );
}

abstract class Type_FormPgtoWirecardTransferencia extends EnumBasic
{
  const Tp_ItauShopline = 7;

  protected static $nickname = array(
    self::Tp_ItauShopline => 'Itaú Shopline',
  );
}

abstract class Type_FormPgtoWirecardCartao extends EnumBasic
{
  const Tp_Visa = 3;
  const Tp_MasterCard = 4;
  const Tp_AmericanExpress = 5;
  const Tp_DinnersClub = 15;
  const Tp_Elo = 16;
  const Tp_Hipercard = 20;
  const Tp_Hiper = 25;

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

abstract class Type_FormPgtoWirecardOrderType extends EnumBasic
{
  const Tp_Created = 'CREATED';
  const Tp_Waiting = 'WAITING';
  const Tp_Paid = 'PAID';
  const Tp_NotPaid = 'NOT_PAID';
  const Tp_Reverted = 'REVERTED';


  protected static $nickname = array(
    self::Tp_Created => 'Pedido criado. Mas ainda não possui nenhum pagamento.',
    self::Tp_Waiting => 'Pedido aguardando confirmação de pagamento.',
    self::Tp_Paid => 'Pedido pago. O pagamento criado nesse pedido foi autorizado.',
    self::Tp_NotPaid => 'Pedido não pago.',
    self::Tp_Reverted => 'Pedido revertido. Sofreu um chargeback ou foi completamente reembolsado.',
  );
}

abstract class Type_StatusTransactionWirecard extends EnumBasic
{
  const Tp_Created = 'CREATED';
  const Tp_Wainting = 'WAITING';
  const Tp_InAnalysis = 'IN_ANALYSIS';
  const Tp_PreAuthorized = 'PRE_AUTHORIZED';
  const Tp_Authorized = 'AUTHORIZED';
  const Tp_Cancelled = 'CANCELLED';
  const Tp_Refunded = 'REFUNDED';
  const Tp_Reversed = 'REVERSED';
  const Tp_Settled = 'SETTLED';

  protected static $nickname = array(
    self::Tp_Created => 'Criado',
    self::Tp_Wainting => 'Aguardando Pagamento',
    self::Tp_InAnalysis => 'Em análise',
    self::Tp_PreAuthorized => 'Pré-autorizado',
    self::Tp_Authorized => 'Autorizado',
    self::Tp_Cancelled => 'Cancelado',
    self::Tp_Refunded => 'Reembolsado ',
    self::Tp_Reversed => 'Estornado',
    self::Tp_Settled => 'Concluído'

  );
}

abstract class Type_WirecardConfigs extends EnumBasic
{
  const Tp_MaximoParcela = 12;
  const Tp_NameModule = 'wirecard';
  const Tp_BankTransferItau = '341';


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

abstract class Type_FormPgtoWirecardAddress extends EnumBasic
{
  const Tp_Cobranca = 'BILLING';
  const Tp_Entrega = 'SHIPPING';

  protected static $nickname = array(
    self::Tp_Cobranca => 'Faturamento',
    self::Tp_Entrega => 'Entrega',
  );
}

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

    protected static $nickname = array(
        self::Tp_Billet => 'numero_autorizacao',
        self::Tp_CreditCard => 'tid',
    );
}