<?php

abstract class Type_ClearSaleIntegracao extends EnumBasic{
   const Tp_Start   = 0 ;
   const Tp_Total   = 3 ;
   const Tp_TotalGarantido = 4 ;

   protected static $nickname = array(
     self::Tp_Start   => 'ClearSale Start',
     self::Tp_Total   => 'ClearSale Total',
     self::Tp_TotalGarantido   => 'ClearSale Total Garantido'
   );
}

abstract class Type_ClearSaleTelefone extends EnumBasic{
  const Tp_NaoDefinido   = 0 ;
  const Tp_Residencial   = 1 ;
  const Tp_Comercial     = 2 ;
  const Tp_Recados       = 3 ;
  const Tp_Cobranca      = 4 ;
  const Tp_Temporario    = 5 ;
  const Tp_Celular       = 6 ;

  protected static $nickname = array(
    self::Tp_NaoDefinido=> 'Não definido',
    self::Tp_Residencial=> 'Residencial',
    self::Tp_Comercial  => 'Comercial',
    self::Tp_Recados    => 'Recados',
    self::Tp_Cobranca   => 'Cobrança',
    self::Tp_Temporario => 'Temporário',  
    self::Tp_Celular    => 'Celular'  
  );
}

abstract class Type_ClearSalePessoa extends EnumBasic{
  const Tp_Fisica   = 1 ;
  const Tp_Juridica = 2 ;

  protected static $nickname = array(
    self::Tp_Fisica   => 'Pessoa Física',
    self::Tp_Juridica => 'Pessoa Jurídica'
  );
}

abstract class Type_ClearSaleSexo extends EnumBasic{
  const Tp_Masculino = 'M' ;
  const Tp_Feminino  = 'F' ;

  protected static $nickname = array(
    self::Tp_Masculino => 'Masculino',
    self::Tp_Feminino  => 'Feminino'
  );
}

abstract class Type_ClearSalePagamento extends EnumBasic{
  const Tp_Cartao_Credito   = 1;
  const Tp_Boleto           = 2;
  const Tp_Debito_Cartao    = 3;
  const Tp_Debito_Dinheiro  = 4;
  const Tp_Debito_Cheque    = 5;
  const Tp_Transferencia    = 6;
  const Tp_Sedex_Cobrar     = 7;
  const Tp_Cheque           = 8;
  const Tp_Dinheiro         = 9;
  const Tp_Financiamento    = 10;
  const Tp_Fatura           = 11;
  const Tp_Cupom            = 12;
  const Tp_Multicheque      = 13;
  const Tp_Outros           = 14;
  const Tp_Vale             = 16;
  const Tp_Cartao_Presente_Virual = 1041;
  const Tp_Cartao_Debito_Transferencia_Eletronica = 4011;

  protected static $nickname = array(
    self::Tp_Cartao_Credito   => 'Cartão de Crédito',
    self::Tp_Boleto           => 'Boleto Bancário',
    self::Tp_Debito_Cartao    => 'Débito Bancário',
    self::Tp_Debito_Dinheiro  => 'Débito Bancário - Dinheiro',
    self::Tp_Debito_Cheque    => 'Débito Bancário - Cheque',
    self::Tp_Transferencia    => 'Transferência Bancária',
    self::Tp_Sedex_Cobrar     => 'Sedex a cobrar',
    self::Tp_Cheque           => 'Cheque',
    self::Tp_Dinheiro         => 'Dinheiro',
    self::Tp_Financiamento    => 'Financiamento',
    self::Tp_Fatura           => 'Fatura',
    self::Tp_Cupom            => 'Cupom',
    self::Tp_Multicheque      => 'Multicheque',
    self::Tp_Outros           => 'Outros',
    self::Tp_Vale             => 'Vale',
    self::Tp_Cartao_Presente_Virual => 'Cartão Presente Virual',
    self::Tp_Cartao_Debito_Transferencia_Eletronica => 'Cartão de Débito / Transferência Eletrônica (CD)',
  );
}

abstract class Type_ClearSaleCartao extends EnumBasic{
  const Tp_Diners             = 1;	
  const Tp_MasterCard         = 2;	
  const Tp_Visa               = 3;	
  const Tp_Outros             = 4;	
  const Tp_AmericanExpress    = 5;	
  const Tp_HiperCard          = 6;	
  const Tp_Aura               = 7;	
  const Tp_Elo                = 10;	
  const Tp_LeaderCard         = 50;	
  const Tp_Fortbrasil         = 100;	
  const Tp_Sorocred           = 101;	
  const Tp_AVista             = 102;	
  const Tp_Cartoo_Mais        = 103;	
  const Tp_Cartao_CeA         = 105;	

  protected static $nickname = array(
    self::Tp_Diners           => 'Diners',      
    self::Tp_MasterCard       => 'MasterCard', 
    self::Tp_Visa             => 'Visa',  
    self::Tp_Outros           => 'Outros',  
    self::Tp_AmericanExpress  => 'American Express',  
    self::Tp_HiperCard        => 'HiperCard',  
    self::Tp_Aura             => 'Aura',   
    self::Tp_Elo              => 'Cartão Elo',  
    self::Tp_LeaderCard       => 'LeaderCard',  
    self::Tp_Fortbrasil       => 'Fortbrasil', 	
    self::Tp_Sorocred         => 'Sorocred',  	
    self::Tp_AVista           => 'A Vista',  	
    self::Tp_Cartoo_Mais      => 'Cartão Mais',  	
    self::Tp_Cartao_CeA       => 'Cartão C&A'     
  );
}

abstract class Type_ClearSaleStatusEntrada extends EnumBasic{
  const Tp_Novo      = 0;
  const Tp_Aprovado  = 9;
  const Tp_Cancelado = 41;
  const Tp_Reprovado = 45;

  protected static $nickname = array(
    self::Tp_Novo      => 'Novo (será analisado pelo ClearSale)',
    self::Tp_Aprovado  => 'Aprovado (irá ao ClearSale já aprovado e não será analisado)',
    self::Tp_Cancelado => 'Cancelado pelo cliente (irá ao ClearSale já cancelado e não será analisado)',
    self::Tp_Reprovado => 'Reprovado (irá ao ClearSale já reprovado e não será analisado)'
  );

}

abstract class Type_ClearSaleStatusRetorno extends EnumBasic{
  const Tp_APA = 1;
  const Tp_APM = 2;
  const Tp_RPM = 3;
  const Tp_AMA = 4;
  const Tp_NVO = 5;
  const Tp_SUS = 6;
  const Tp_CAN = 7;
  const Tp_FRD = 8;
  const Tp_RPA = 9;
  const Tp_RPP = 10;
  const Tp_APP = 11;

  protected static $nickname = array(
    self::Tp_APA => 'APA',
    self::Tp_APM => 'APM',
    self::Tp_RPM => 'RPM',
    self::Tp_AMA => 'AMA',
    self::Tp_NVO => 'NVO',
    self::Tp_SUS => 'SUS',
    self::Tp_CAN => 'CAN',
    self::Tp_FRD => 'FRD',
    self::Tp_RPA => 'RPA',
    self::Tp_RPP => 'RPP',
    self::Tp_APP => 'APP'
  );
  
  protected static $description = array(
    self::Tp_APA => '(Aprovação Automática) – Pedido foi aprovado automaticamente segundo parâmetros definidos na regra de aprovação automática',
    self::Tp_APM => '(Aprovação Manual) – Pedido aprovado manualmente por tomada de decisão de um analista',
    self::Tp_RPM => '(Reprovado Sem Suspeita) – Pedido Reprovado sem Suspeita por falta de contato com o cliente dentro do período acordado e/ou políticas restritivas de CPF (Irregular, SUS ou Cancelados)',
    self::Tp_AMA => '(Análise manual) – Pedido está em fila para análise',
    self::Tp_NVO => '(Novo) – Pedido importado e não classificado Score pela analisadora (processo que roda o Score de cada pedido)',
    self::Tp_SUS => '(Suspensão Manual) – Pedido Suspenso por suspeita de fraude baseado no contato com o “cliente” ou ainda na base ClearSale',
    self::Tp_CAN => '(Cancelado pelo Cliente) – Cancelado por solicitação do cliente ou duplicidade do pedido',
    self::Tp_FRD => '(Fraude Confirmada) – Pedido imputado como Fraude Confirmada por contato com a administradora de cartão e/ou contato com titular do cartão ou CPF do cadastro que desconhecem a compra',
    self::Tp_RPA => '(Reprovação Automática) – Pedido Reprovado Automaticamente por algum tipo de Regra de Negócio que necessite aplicá-la',
    self::Tp_RPP => '(Reprovação Por Política) – Pedido reprovado automaticamente por política estabelecida pelo cliente ou Clearsale',
    self::Tp_APP => '(Aprovação Por Política) – Pedido aprovado automaticamente por política estabelecida pelo cliente ou Clearsale'
  );

}


abstract class Type_ClearSaleStatusPagamento extends EnumBasic{
  const Tp_PGA = 1;
  const Tp_PGR = 2;

  protected static $nickname = array(
    self::Tp_PGA => 'PGA',
    self::Tp_PGR => 'PGR',
  );
  
  protected static $description = array(
    self::Tp_PGA => 'Pagamento Aprovado',
    self::Tp_PGR => 'Pagamento Reprovado',
  );

}

abstract class Type_ClearSaleEcommerce extends EnumBasic{
  const Tp_B2B = 1;
  const Tp_B2C = 2;

  protected static $nickname = array(
    self::Tp_B2B => 'B2B',
    self::Tp_B2C => 'B2C',
  );
}


abstract class Type_ClearSaleReturnRequest extends EnumBasic{
  const Tp_Status = 1;

  protected static $nickname = array(
    self::Tp_Status => 'status',
  );

  protected static $description = array(
    self::Tp_Status => 'Status',
  );  
}

abstract class Type_ClearSaleFrete extends EnumBasic{
  const Tp_Outros = 0;
  const Tp_Normal = 1;
  const Tp_Garantida = 2;
  const Tp_ExpressaBR = 3;
  const Tp_ExpressaSP = 4;
  const Tp_Alta = 5;
  const Tp_Economica = 6;
  const Tp_Agendada = 7;
  const Tp_Extra_Rapida = 8;
  const Tp_Impresso = 9;
  const Tp_Aplicativo = 10;
  const Tp_Correio = 11;
  const Tp_Motoboy = 12;
  const Tp_Retirada_bilheteria = 13;
  const Tp_Retirada_loja_parceira = 14;
  const Tp_Cartao_de_credito_ingresso = 15;
  const Tp_Retirada_loja = 16;
  const Tp_Retirada_via_lockers = 17;
  const Tp_Retirada_em_agencia_correios = 18;
  const Tp_Entrega_garantida_mesmo_dia = 19;
  const Tp_Entrega_garantida_dia_seguinte = 20;
  const Tp_Retirada_em_loja_expresso = 21;

  protected static $nickname = array(
    self::Tp_Outros => 'Outros',
    self::Tp_Normal => 'Normal',
    self::Tp_Garantida => 'Garantida',
    self::Tp_ExpressaBR => 'ExpressaBR',
    self::Tp_ExpressaSP => 'ExpressaSP',
    self::Tp_Alta => 'Alta',
    self::Tp_Economica => 'Econômica',
    self::Tp_Agendada => 'Agendada',
    self::Tp_Extra_Rapida => 'Extra Rápida',
    self::Tp_Impresso => 'Impresso',
    self::Tp_Aplicativo => 'Aplicativo',
    self::Tp_Correio => 'Correio',
    self::Tp_Motoboy => 'Motoboy',
    self::Tp_Retirada_Bilheteria => 'Retirada Bilheteria',
    self::Tp_Retirada_Loja_Parceira => 'Retirada Loja Parceira',
    self::Tp_Cartao_de_Credito_Ingresso => 'Cartão de Crédito Ingresso',
    self::Tp_Retirada_Loja => 'Retirada Loja',
    self::Tp_Retirada_via_Lockers => 'Retirada via Lockers (Parceiros)',
    self::Tp_Retirada_em_agencia_correios => 'Retirada em Agencia dos Correios',
    self::Tp_Entrega_garantida_mesmo_dia => 'Entrega Garantida no mesmo dia da compra',
    self::Tp_Entrega_garantida_dia_seguinte => 'Entrega Garantida no dia seguinte da compra',
    self::Tp_Retirada_em_loja_expresso => 'Retirada em loja - Expresso',   
  ); 
}







