<?php


abstract class Type_RedeStatusPgto extends EnumBasic{
  const Tp_RedeCancelado  = 0 ;
  const Tp_RedePago       = 1 ;
  const Tp_RedeAguardando = 2 ;
  const Tp_RedeNegado     = 3 ;
  const Tp_RedeAutorizado = 4 ;

  protected static $nickname = array(
    self::Tp_RedeCancelado  => 'Cancelado',
    self::Tp_RedePago       => 'Pago',
    self::Tp_RedeAguardando => 'Aguardando',
    self::Tp_RedeNegado     => 'Negado',
    self::Tp_RedeAutorizado => 'Autorizado'
  );
}

abstract class Type_RedeAutorizacao extends EnumBasic{
  const Tp_RedeAutorizada  = 0 ;
  const Tp_RedeNegada      = 1 ;
  const Tp_RedeRetentativa = 2 ;

  protected static $nickname = array(
    self::Tp_RedeAutorizada  => 'Autorizada',
    self::Tp_RedeNegada      => 'Negada',
    self::Tp_RedeRetentativa => 'Retentativa'
  );
}

abstract class Type_RedeRetorno extends EnumBasic{
  const Tp_RedeRetorno00	= '00';
  const Tp_RedeRetorno101	= '101';
  const Tp_RedeRetorno102	= '102';
  const Tp_RedeRetorno103	= '103';
  const Tp_RedeRetorno104	= '104';
  const Tp_RedeRetorno105	= '105';
  const Tp_RedeRetorno106	= '106';
  const Tp_RedeRetorno107	= '107';
  const Tp_RedeRetorno108	= '108';
  const Tp_RedeRetorno109	= '109';
  const Tp_RedeRetorno110	= '110';
  const Tp_RedeRetorno111	= '111';
  const Tp_RedeRetorno112	= '112';
  const Tp_RedeRetorno113	= '113';
  const Tp_RedeRetorno114	= '114';
  const Tp_RedeRetorno115	= '115';
  const Tp_RedeRetorno116	= '116';
  const Tp_RedeRetorno117	= '117';
  const Tp_RedeRetorno118	= '118';
  const Tp_RedeRetorno119	= '119';
  const Tp_RedeRetorno121	= '121';
  const Tp_RedeRetorno122	= '122';
  const Tp_RedeRetorno123	= '123';
  const Tp_RedeRetorno124	= '124';
  const Tp_RedeRetorno170	= '170';
  const Tp_RedeRetorno174	= '174';
  const Tp_RedeRetorno175	= '175';
  const Tp_RedeRetorno351	= '351';
  const Tp_RedeRetorno353	= '353';
  const Tp_RedeRetorno354	= '354';
  const Tp_RedeRetorno355	= '355';
  const Tp_RedeRetorno357	= '357';
  const Tp_RedeRetorno358	= '358';
  const Tp_RedeRetorno359	= '359';
  const Tp_RedeRetorno360	= '360';
  const Tp_RedeRetorno362	= '362';
  const Tp_RedeRetorno363	= '363';
  const Tp_RedeRetorno365	= '365';
  const Tp_RedeRetorno368	= '368';
  const Tp_RedeRetorno369	= '369';
  const Tp_RedeRetorno370	= '370';
  const Tp_RedeRetorno371	= '371';

  protected static $nickname = array(
    self::Tp_RedeRetorno00	=> 'Transação efetuada com sucesso.',
    self::Tp_RedeRetorno101	=> 'Não autorizado. Problemas no cartão, entre em contato com o emissor.',
    self::Tp_RedeRetorno102	=> 'Não autorizado.',
    self::Tp_RedeRetorno103	=> 'Não autorizado. Por favor, tente novamente.',
    self::Tp_RedeRetorno104	=> 'Não autorizado. Por favor, tente novamente.',
    self::Tp_RedeRetorno105	=> 'Não autorizado. Cartao restrito.',
    self::Tp_RedeRetorno106	=> 'Erro no processamento do emissor. Por favor, tente novamente.',
    self::Tp_RedeRetorno107	=> 'Não autorizado. Por favor, tente novamente.',
    self::Tp_RedeRetorno108	=> 'Não autorizado. Valor não permitido para este tipo de cartão.',
    self::Tp_RedeRetorno109	=> 'Não autorizado. Cartão inexistente.',
    self::Tp_RedeRetorno110	=> 'Não autorizado. Tipo de transação não permitido para este cartão.',
    self::Tp_RedeRetorno111	=> 'Não autorizado. Limite insuficientes.',
    self::Tp_RedeRetorno112	=> 'Não autorizado. Cartão expirado.',
    self::Tp_RedeRetorno113	=> 'Não autorizado. Identificou risco moderado pelo emissor.',
    self::Tp_RedeRetorno114	=> 'Não autorizado. O cartão não pertence à rede de pagamento.',
    self::Tp_RedeRetorno115	=> 'Não autorizado. Excedeu o limite de transações permitidas no período.',
    self::Tp_RedeRetorno116	=> 'Não autorizado. Por favor, entre em contato com o emissor do cartão.',
    self::Tp_RedeRetorno117	=> 'Transação não encontrada.',
    self::Tp_RedeRetorno118	=> 'Não autorizado. Cartão bloqueado.',
    self::Tp_RedeRetorno119	=> 'Não autorizado. Código de segurança inválido.',
    self::Tp_RedeRetorno121	=> 'Erro no processamento do emissor. Por favor, tente novamente.',
    self::Tp_RedeRetorno122	=> 'Transação enviada anteriormente.',
    self::Tp_RedeRetorno123	=> 'Não autorizado. O portador solicitou o fim das recorrências no emissor.',
    self::Tp_RedeRetorno124	=> 'Não autorizado. Entre em contato com a Rede.',
    self::Tp_RedeRetorno170	=> 'Transação zero dólar não permitida para este cartão.',
    self::Tp_RedeRetorno174	=> 'Sucesso de transação em zero dólar.',
    self::Tp_RedeRetorno175	=> 'Negociação de zero dólar negada.',
    self::Tp_RedeRetorno351	=> 'Não foi possivel efetuar o reembolso.',
    self::Tp_RedeRetorno353	=> 'Transação não encontrada.',
    self::Tp_RedeRetorno354	=> 'Transacção com prazo expirado para reembolso.',
    self::Tp_RedeRetorno355	=> 'Transação já cancelada.',
    self::Tp_RedeRetorno357	=> 'Soma dos reembolsos de quantia maiores que o valor da transação.',
    self::Tp_RedeRetorno358	=> 'Soma dos reembolsos de quantia maiores que o valor processado disponível para reembolso.',
    self::Tp_RedeRetorno359	=> 'Reembolso bem sucedido.',
    self::Tp_RedeRetorno360	=> 'O pedido de reembolso foi bem sucedido.',
    self::Tp_RedeRetorno362	=> 'RefundId não encontrado.',
    self::Tp_RedeRetorno363	=> 'caracteres de URL de retorno de chamada excederam 500.',
    self::Tp_RedeRetorno365	=> 'Reembolso parcial indisponível.',
    self::Tp_RedeRetorno368	=> 'Sem sucesso. Por favor, tente novamente.',
    self::Tp_RedeRetorno369	=> 'Reembolso não encontrado.',
    self::Tp_RedeRetorno370	=> 'Pedido falhou. Entre em contato com a Rede.',
    self::Tp_RedeRetorno371	=> 'Transação não disponível para reembolso. Tente novamente em algumas horas.'
   );
}


abstract class Type_RedeFingerPrintCustomerID extends EnumBasic{
  const Tp_Homologacao  = 'c54b99d0-894e-11e7-adc9-77887d29e284' ;
  const Tp_Producao     = '75ee1000-3f7c-11e7-af0a-d705e0dbc8bb' ;

  protected static $nickname = array(
    self::Tp_Homologacao  => 'SandBox',
    self::Tp_Producao     => 'Produção',
  );
}

abstract class Type_NivelRisco extends EnumBasic{
  const Tp_Baixo   = 1;
  const Tp_Medio   = 2 ;
  const Tp_Alto    = 3 ;

  protected static $nickname = array(
    self::Tp_Baixo  => 'Baixo Risco',
    self::Tp_Medio  => 'Medio Risco',
    self::Tp_Alto   => 'Alto Risco',
  );
}

abstract class Type_RedeBandeira extends EnumBasic{
  const Tp_Visa        = 1 ;
  const Tp_Mastercard  = 2 ;
  const Tp_Amex        = 3 ;
  const Tp_Diners      = 4 ;
  const Tp_Elo         = 5 ;
  const Tp_Discover    = 6 ;

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

abstract class Type_RedeCancel extends EnumBasic{
	const Tp_Forbidden = 351;
	const Tp_Transaction_not_found = 353;
	const Tp_Transaction_period_expired = 354;
	const Tp_Transaction_canceled = 355;
	const Tp_Sum_amount_greater_transaction = 357;
	const Tp_Sum_amount_greater_transaction_available = 358;
	const Tp_Refund_successful = 359;
	const Tp_Refund_request_successful = 360;
	const Tp_RefundId_not_found = 362;
	const Tp_Callback_exceeded_char = 363;
	const Tp_Partial_refund_not_available = 365;
	const Tp_Unsuccessful = 368;
	const Tp_Refund_not_found = 369;
	const Tp_Request_failed = 370;
	const Tp_Transaction_not_available = 371;

  protected static $nickname = array(
    self::Tp_Forbidden => 'Forbidden',
    self::Tp_Transaction_not_found => 'Transaction not found',
    self::Tp_Transaction_period_expired => 'Transaction with period expired for refund',
    self::Tp_Transaction_canceled => 'Transaction already canceled.',
    self::Tp_Sum_amount_greater_transaction => 'Sum of amount refunds greater than the transaction amount',
    self::Tp_Sum_amount_greater_transaction_available => 'Sum of amount refunds greater than the value processed available for refund',
    self::Tp_Refund_successful => 'Refund successful',
    self::Tp_Refund_request_successful => 'Refund request has been successful',
    self::Tp_RefundId_not_found => 'RefundId not found',
    self::Tp_Callback_exceeded_char => 'Callback Url characters exceeded 500',
    self::Tp_Partial_refund_not_available => 'Partial refund not available.',
    self::Tp_Unsuccessful => 'Unsuccessful. Please try again',
    self::Tp_Refund_not_found => 'Refund not found',
    self::Tp_Request_failed => 'Request failed. Contact Rede',
    self::Tp_Transaction_not_available => 'Transaction not available for refund. Try again in a few hours',
  );
}

abstract class Type_Authentication_fails extends EnumBasic{
    const Affiliation_Size      = 24;
    const Affiliation_Format    = 25;
    const Affiliation_Missing   = 26;
    const Invalid_Token_65      = 65;
    const Invalid_Token_89      = 89;

    protected static $nickname = array(
      self::Affiliation_Size       => 'Invalid parameter size',
      self::Affiliation_Format     => 'Invalid parameter format',
      self::Affiliation_Missing    => 'Required parameter missing',
      self::Invalid_Token_65       => 'Invalid token',
      self::Invalid_Token_89       => 'Invalid token',
    );
  }












