<?php
abstract class Type_ApiReturn extends EnumBasic{
   const Tp_returnErrorGenerico    = 0 ;
   const Tp_returnsucesso          = 1 ;
   const Tp_InvalidParameter       = 2 ;
   const Tp_invalidToken           = 3 ;
   const Tp_CustomerLoginError     = 4 ;
   const Tp_CustomerLoginSucesso   = 5 ;
   const Tp_CustomerNotLogged      = 6 ;
   const Tp_CustomerLogoutSucesso  = 7 ;

   protected static $nickname = array(
     self::Tp_returnErrorGenerico    => 'usuário ou senha são inválidos!',
     self::Tp_returnsucesso          => 'login efetuado com sucesso!',
     self::Tp_InvalidParameter       => 'parametro %s inválido na função!',
     self::Tp_invalidToken           => 'token invalido!',
     self::Tp_CustomerLoginError     => 'usuário ou senha inválidos ou cadastro aguardando aprovação!',
     self::Tp_CustomerLoginSucesso   => 'login efetuado com sucesso!',
     self::Tp_CustomerNotLogged      => 'Não existe nenhum cliente logado!',
     self::Tp_CustomerLogoutSucesso  => 'Logout efetuado com sucesso',
   );
}

 abstract class Type_ApiLinksLateral extends EnumBasic{
    const TpApil_Principal            = 0 ;
    const TpApil_Meuspedidos          = 1 ;
    const TpApil_Listadesejos         = 2 ;
    const TpApil_Produtosvisualizados = 3 ;
    const TpApil_Carrinho             = 4 ;
    const TpApil_Categorias           = 5 ;

    protected static $nickname = array(
      self::TpApil_Carrinho             => ['route' => 'checkout/cart'           , 'titulo' => 'Carrinho'                     , 'param' => ''],
      self::TpApil_Principal            => ['route' => 'common/home'             , 'titulo' => 'Destaques'                    , 'param' => ''],
      self::TpApil_Categorias           => ['route' => ''                        , 'titulo' => 'Categorias'                   , 'param' => ''],
      self::TpApil_Meuspedidos          => ['route' => 'account/order'           , 'titulo' => 'Meus Pedidos'                 , 'param' => ''],
      self::TpApil_Listadesejos         => ['route' => 'account/wishlist'        , 'titulo' => 'Lista de Desejos'             , 'param' => ''],
      self::TpApil_Produtosvisualizados => ['route' => 'product/modules_in_page' , 'titulo' => 'Ultimos produtos visualizados', 'param' => '&name=product_visualized'],
    );
  }

  abstract class Type_requisicao extends EnumBasic{
     const Tp_reqPost    = 0 ;
     const Tp_reqGet     = 1 ;


     protected static $nickname = array(
       self::Tp_reqPost    => 'post',
       self::Tp_reqGet     => 'get'
     );
  }

  abstract class Type_ModuleNotLoad extends EnumBasic{
     const Tp_ModuleAccount    = 'account/module' ;

     protected static $nickname = array(
       self::Tp_ModuleAccount    => 'bla bla bla',
     );

  }
