<?xml version="1.0" encoding="UTF-8"?>
<!-- Es un archivo de mapeo -->
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.mx.dla.admin.daos.PerfilDAO">

	<resultMap id="perfil" type="PerfilDTO">
		<id property="idPerfil" column="ID_PERFIL" />
		<result property="descPerfil" column="DESC_PERFIL" />
		<result property="estatusPerfil" column="ESTATUS_PERFIL" />

		<!-- Relación de 1 a N -->
		<collection property="menus" ofType="MenuDTO">
			<id property="idMenu" column="ID_MENU" />
			<result property="nombre" column="NOMBRE" />
			<result property="descripcion" column="DESCRIPCION" />
			<result property="tipoMenu" column="TIPO_MENU" />
			<result property="script" column="SCRIPT" />
			<result property="parametros" column="PARAMETROS" />
			<result property="idMenuPadre" column="ID_MENU_PADRE" />
			<result property="estatus" column="ESTATUS" />			
			<result property="enMtto" column="EN_MTTO" />
			<result property="iconClass" column="ICON_CLASS" />
			<result property="orden" column="ORDEN" />			
			<result property="ruta" column="RUTA" />
			<result property="nivel" column="NIVEL" />			
		</collection>
	</resultMap>

	<select id="obtenerPerfil" resultMap="perfil" parameterType="map">
		select
			per.ID_PERFIL,
			per.DESC_PERFIL,
			per.ESTATUS_PERFIL,
			mnu.ID_MENU, mnu.NOMBRE, mnu.DESCRIPCION,
			mnu.TIPO_MENU, mnu.SCRIPT, mnu.PARAMETROS, mnu.ID_MENU_PADRE,
			mnu.ESTATUS, mnu.EN_MTTO, mnu.ICON_CLASS, mnu.ORDEN,
			SYS_CONNECT_BY_PATH( NOMBRE, '\' ) as RUTA, LEVEL as NIVEL		
		from
			DLA_C_PERFIL per,
			DLA_C_PERFIL_MENU pmen,
			DLA_C_MENU mnu
		WHERE
				per.ID_PERFIL = #{idPerfil}
			and per.ID_PERFIL = pmen.ID_PERFIL
			and mnu.ID_MENU = pmen.ID_MENU
			and mnu.ESTATUS = 1
			and mnu.ID_MENU_PADRE = 0
		START WITH ID_MENU_PADRE = 0
		CONNECT BY PRIOR mnu.ID_MENU = mnu.ID_MENU_PADRE
		order by LEVEL, mnu.ORDEN
	</select>

</mapper>
