<?php
abstract class Type_StatusAction extends EnumBasic{
  const Tp_Envia        = 0 ;
  const Tp_Recebe       = 1 ;
  const Tp_EnviaRecebe  = 2 ;

  protected static $nickname = array (
    self::Tp_Envia        => 'Envia',
    self::Tp_Recebe       => 'Recebe',
    self::Tp_EnviaRecebe  => 'Envia e Recebe'
  );
}


abstract class Type_CodigoLanguage extends EnumBasic{
  const Tp_PortuguesBr      = 'pt-br' ;


  protected static $nickname = array (
    self::Tp_PortuguesBr       => 'Português(BR)',
  );
}

abstract class Type_CodigoMoeda extends EnumBasic{
  const Tp_MoedReal      = 'BRL' ;


  protected static $nickname = array (
    self::Tp_MoedReal       => 'Real',
  );
}

abstract class Type_mktCountry extends EnumBasic{
  const Tp_PaisBrasil      = 'BR' ;


  protected static $nickname = array (
    self::Tp_PaisBrasil       => 'Brasil',
  );
}

abstract class Type_mktCountryIso3 extends EnumBasic{
  const Tp_PaisBrasil      = 'BRA' ;


  protected static $nickname = array (
    self::Tp_PaisBrasil       => 'Brasil',
  );
}

abstract class Type_MarketPlace extends EnumBasic {
  const Tp_Mercadolivre     = 0;
  const Tp_SkyHub           = 1;
  const Tp_Galeriapage      = 2;
  const Tp_Shopee           = 3;

  protected static $nickname = array(
    self::Tp_Mercadolivre    => 'Mercadolivre',
    self::Tp_SkyHub          => 'SkyHub',
    self::Tp_Galeriapage     => 'Galeriapage',
    self::Tp_Shopee          => 'Shopee',
  );
}

abstract class Type_ProdutoMkt extends EnumBasic {
    const Tp_MktProd_Normal     = 0;
    const Tp_MktProd_Grade      = 1;

    protected static $nickname = array(
        self::Tp_MktProd_Normal    => 'Produto',
        self::Tp_MktProd_Grade     => 'Grade',
    );
}

abstract class Type_StatusNotificationMkt extends EnumBasic {
    const Tp_MktStNot_Ativo        = 0;
    const Tp_MktStNot_Inativo      = 1;
    const Tp_MktStNot_EmPausa      = 2;
    const Tp_MktStNot_Removido     = 3;
    const Tp_MktStNot_EmRevisao    = 4;

    protected static $nickname = array(
        self::Tp_MktStNot_Ativo      => 'Ativo',
        self::Tp_MktStNot_Inativo    => 'Inativo',
        self::Tp_MktStNot_EmPausa    => 'Pausado',
        self::Tp_MktStNot_Removido   => 'Fechado',
        self::Tp_MktStNot_EmRevisao  => 'Revisão'
    );
}

abstract class Type_AcaoAnuncio extends EnumBasic {
    const Tp_AcAnNew     = 'new';
    const Tp_AcAnReplace = 'replace';

    protected static $nickname = array(
        self::Tp_AcAnNew      => 'Criar novo anúncio',
        self::Tp_AcAnReplace  => 'Alterar para grade',
    );
}


abstract class Type_Pessoa extends EnumBasic {
  const TpPess_naoInformado     = 0;
  const TpPess_fisica           = 1;
  const TpPess_Juridica         = 2;

  protected static $nickname = array(
    self::TpPess_naoInformado      => 'Não Informado',
    self::TpPess_fisica            => 'Pessoa Fisica',
    self::TpPess_Juridica          => 'Pessoa juridica',
  );
}

abstract class Type_DadosSend extends EnumBasic {
  const TpDados_Identificar     = 0;
  const TpDados_Json            = 1;

  protected static $nickname = array(
    self::TpDados_Identificar      => 'Identificar',
    self::TpDados_Json             => 'Json',
  );
}

abstract class Type_Genero extends EnumBasic {
  const TpGen_Masc    = 0;
  const TpGen_Fem     = 1;

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

abstract class Type_FilterMkt extends EnumBasic {
    const Tp_FilterMarketplace = 'filter_marketplace';
    const Tp_FilterMarketId    = 'filter_marketId';
    const Tp_FilterMlStatus    = 'filter_ml_status';

    protected static $nickname = array(
        self::Tp_FilterMarketplace    => 'Se o produto esta ligado ao marketplace',
        self::Tp_FilterMarketId       => 'Id produto no marketplace',
        self::Tp_FilterMlStatus       => 'Status produto no marketplace',
    );
}

abstract class Type_CallApi extends EnumBasic {
  const Tp_Order = 'order';

  protected static $nickname = array(
    self::Tp_Order    => 'Pedido',
  );
}


abstract class Type_MktOrigemCaptura extends EnumBasic {
    const Automatica = 1;
    const Manual     = 2;

    protected static $nickname = array(
      self::Automatica    => 'Automática',
      self::Manual        => 'Manual',
    );
}

abstract class Type_MarketplaceAdjustmentPrice extends EnumBasic{
    const Tp_Percentual  = 0 ;
    const Tp_ValorFixo   = 1 ;

    protected static $nickname = array (
        self::Tp_Percentual  => 'Percentual',
        self::Tp_ValorFixo   => 'Valor Fixo'
    );
}

abstract class Type_MarketplaceTypeAdjustment extends EnumBasic{
    const Tp_Acre  = 'increase' ;
    const Tp_Decre = 'decrease' ;

    protected static $nickname = array (
        self::Tp_Acre  => 'Acréscimo',
        self::Tp_Decre => 'Desconto'
    );
}

abstract class Type_NotificacaoOrigem extends EnumBasic{
    const Tp_Recebimento  = 0 ;
    const Tp_Envio   = 1 ;
    const Tp_Aguardando  = 2 ;

    protected static $nickname = array (
        self::Tp_Recebimento  => 'Recebimento',
        self::Tp_Envio   => 'Envio',
        self::Tp_Aguardando   => 'Aguardando'
    );
}

abstract class Type_NotificacaoStatus extends EnumBasic{
    const Tp_SituacaoRecebido      = 0 ;
    const Tp_SituacaoErro          = 1 ;
    const Tp_SituacaoNotificado    = 2 ;
    const Tp_SituacaoAguardando    = 3 ;


    protected static $nickname = array (
        self::Tp_SituacaoRecebido     => 'Recebido do Marketplace',
        self::Tp_SituacaoErro         => 'Erro no Marketplace',
        self::Tp_SituacaoNotificado   => 'Marketplace Notificado',
        self::Tp_SituacaoAguardando   => 'Aguardando Sincronia'
    );
}

abstract class Type_MarketplaceLink extends EnumBasic{
    const Tp_Total = 0 ;
    const Tp_Stock = 1 ;

    protected static $nickname = array (
        self::Tp_Total => 'Total',
        self::Tp_Stock => 'Estoque',
    );
}