package sgc.portal.com.sym.mnu.persistence;

import sgc.portal.base.model.Yfvrprg;
import sgc.portal.base.util.EasyHashMap;
import sgc.portal.security.model.Authority;
import sgc.portal.com.sym.user.model.UserDetails;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * The interface Menu mapper.
 */
@Mapper
public interface MenuMapper {
    /**
     * Select menu list list.
     *
     * @param authorities the authorities
     * @param topMenu     the top menu
     * @param prgNm       the prg nm
     * @return the list
     */
    List<EasyHashMap<String, Object>> selectMenuListKo(@Param("authorities") List<Authority> authorities, @Param("topMenu") String topMenu, @Param("prgNm") String prgNm);
    
    List<EasyHashMap<String, Object>> selectMenuListEn(@Param("authorities") List<Authority> authorities, @Param("topMenu") String topMenu, @Param("prgNm") String prgNm);

    /**
     * Select menu list list.
     *
     * @param authorities the authorities
     * @param topMenu     the top menu
     * @param prgNm       the prg nm
     * @return the list
     */
    List<EasyHashMap<String, Object>> selectMenuAsListKo(@Param("authorities") List<Authority> authorities, @Param("topMenu") String topMenu, @Param("prgNm") String prgNm);
    
    List<EasyHashMap<String, Object>> selectMenuAsListEn(@Param("authorities") List<Authority> authorities, @Param("topMenu") String topMenu, @Param("prgNm") String prgNm);
    

    
    /**
     * Select top menu list list.
     *
     * @param userDetails the user details
     * @return the list
     */
    List<EasyHashMap<String, Object>> selectTopMenuListKo(UserDetails userDetails);
    List<EasyHashMap<String, Object>> selectTopMenuListEn(UserDetails userDetails);

    /**
     * Select top menu list list.
     *
     * @param userDetails the user details
     * @return the list
     */
//    List<EasyHashMap<String, Object>> selectTopMenuList(@Param("authorities") List<Authority> authorities);
    List<EasyHashMap<String, Object>> selectTopMenuAsListKo(UserDetails userDetails);
    List<EasyHashMap<String, Object>> selectTopMenuAsListEn(UserDetails userDetails);
    
    /**
     * Select bock menu list list.
     *
     * @param yfvrprgs the yfvrprgs
     * @return the list
     */
//즐겨찾기
    List<EasyHashMap<String, Object>> selectBockMenuList(Yfvrprg yfvrprgs);
}