<?php

//Default
abstract class Type_AcrescimoDesconto extends EnumBasic{
  const Tp_Porcentagem        = 1 ;
  const Tp_ValorFixo          = 2 ;

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

abstract class Type_FreteTipoCalculo extends EnumBasic{
  const Tp_FreteTpCalcDimensao = 0 ;
  const Tp_FreteTpCalcVolume   = 1 ;

  protected static $nickname = array(
    self::Tp_FreteTpCalcDimensao  => 'Cálculo por dimensões' ,
    self::Tp_FreteTpCalcVolume    => 'Cálculo por volume'
  );
}

abstract class Type_ShippingCode extends EnumBasic{
  const Tp_ShippingPickup      = 'pickup';
  const Tp_ShippingMelhorEnvio = 'melhorenvio';

  protected static $nickname = array(
    self::Tp_ShippingPickup      => 'Retirada na Loja',
    self::Tp_ShippingMelhorEnvio => 'Melhor Envio',
  );
}

//DLog
abstract class Type_DlogModalService extends EnumBasic{
  const Tp_DlgModalTodos        = 0 ;
  const Tp_DlgModalCourier      = 1 ;
  const Tp_DlgModalRodoviario   = 2 ;

  protected static $nickname = array (
    self::Tp_DlgModalTodos        => 'Courier/Rodoviário',
    self::Tp_DlgModalCourier      => 'Courier',
    self::Tp_DlgModalRodoviario   => 'Rodoviário'
  );
}

//Intelipost
abstract class Type_IntelipostTipoCote extends EnumBasic{
  const Tp_InteliProduto        = 0 ;
  const Tp_InteliVolume         = 1 ;

  protected static $nickname = array (
    self::Tp_InteliProduto        => 'Produtos',
    self::Tp_InteliVolume         => 'Volume'
  );
}

//Intelipost ^^

//Melhor Envio
abstract class Type_MelhorenvioTipoCotacao extends EnumBasic{
  const Tp_Produto = 0;
  const Tp_Pacote  = 1;

  protected static $nickname = array (
    self::Tp_Produto => 'Produtos',
    self::Tp_Pacote  => 'Pacote',
  );
}

abstract class Type_MelhorenvioTransportadora extends EnumBasic{
  const Tp_Correios = 1;
  const Tp_Jadlog  = 2;

  protected static $nickname = array (
    self::Tp_Correios => 'Correios',
    self::Tp_Jadlog  => 'Jadlog',
  );
}

abstract class Type_MelhorenvioServico extends EnumBasic{
  const Tp_Pac        = 1;
  const Tp_Sedex      = 2;
  const Tp_Package    = 3;
  const Tp_Com        = 4;
  const Tp_MiniEnvios = 17;

  protected static $nickname = array (
    self::Tp_Pac         => 'Pac',
    self::Tp_Sedex       => 'Sedex',
    self::Tp_Package     => '.Package',
    self::Tp_Com         => '.Com',
    self::Tp_MiniEnvios  => 'Mini Envios',
  );
}

//Melhor Envio ^^


//JadLog

abstract class Type_JadlogModalidade extends EnumBasic
{
  const Expresso = 0;
  const Packge = 3;
  const Rodoviario = 4;
  const Economico = 5;
  const Doc = 6;
  const Corporate = 7;
  const Com = 9;
  const Internacional = 10;
  const Cargo = 12;
  const Emergencial = 14;
  const Pickup = 40;

  protected static $nickname = array(
    self::Expresso       => '0 - EXPRESSO',
    self::Packge         => '3 - PACKAGE',
    self::Rodoviario     => '4 - RODOVIÁRIO',
    self::Economico      => '5 - ECONÔMICO',
    self::Doc            => '6 - DOC',
    self::Corporate      => '7 - CORPORATE',
    self::Com            => '9 - .COM',
    self::Internacional  => '10 - INTERNACIONAL',
    self::Cargo          => '12 - CARGO',
    self::Emergencial    => '14 - EMERGÊNCIAL',
    self::Pickup         => '40 - PICKUP'
  );
}

abstract class Type_JadlogEntrega extends EnumBasic
{
    const Domicilio = 'D';
    const Retirada  = 'R';

    protected static $nickname = array(
        self::Domicilio => 'Domicilio',
        self::Retirada  => 'Retirada'
    );
}

abstract class Type_JadlogSeguro extends EnumBasic
{
    const Normal  = 'N';
    const Apolice = 'A';

    protected static $nickname = array(
        self::Normal   => 'Normal',
        self::Apolice  => 'Apólice'
    );
}

//JadLog ^^