<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="pwc.taxtech.atms.dao.EnterpriseAccountSetOrgMapper">
    <resultMap extends="BaseResultMap" id="ResultMapWithAssociation"
               type="pwc.taxtech.atms.entity.EnterpriseAccountSetOrg">
        <association column="ORGANIZATION_ID" property="organization"
                     select="pwc.taxtech.atms.dao.OrganizationMapper.selectByPrimaryKey"/>
    </resultMap>
    <select id="selectByExampleWithAssociation" parameterType="pwc.taxtech.atms.entity.EnterpriseAccountSetOrgExample"
            resultMap="ResultMapWithAssociation">
        SELECT
        <if test="distinct">
            DISTINCT
        </if>
        <include refid="Base_Column_List"/>
        FROM enterprise_account_set_org
        <if test="_parameter != null">
            <include refid="Example_Where_Clause"/>
        </if>
        <if test="orderByClause != null">
            ORDER BY ${orderByClause}
        </if>
    </select>
    <resultMap id="EnterpriseAccountSetOrgDto" type="pwc.taxtech.atms.dpo.EnterpriseAccountSetOrgDto">
        <id column="ID" jdbcType="VARCHAR" property="id"/>
        <result column="ENTERPRISE_ACCOUNT_SET_ID" jdbcType="VARCHAR" property="enterpriseAccountSetId"/>
        <result column="ORGANIZATION_ID" jdbcType="VARCHAR" property="organizationId"/>
        <result column="EFFECTIVE_DATE" jdbcType="VARCHAR" property="effectiveDate"/>
        <result column="EXPIRED_DATE" jdbcType="VARCHAR" property="expiredDate"/>
        <result column="ENTERPRISE_ACCOUNT_SET_NAME" jdbcType="VARCHAR" property="enterpriseAccountSetName"/>
    </resultMap>

    <select id="getSingleOrgByOrgIdToEASODto" resultMap="EnterpriseAccountSetOrgDto">
        SELECT
        M.id AS ID,
        M.enterprise_account_set_id AS ENTERPRISE_ACCOUNT_SET_ID,
        M.organization_id AS ORGANIZATION_ID,
        M.effective_date AS EFFECTIVE_DATE,
        M.expired_date AS EXPIRED_DATE,
        N.name AS ENTERPRISE_ACCOUNT_SET_NAME
        FROM
        enterprise_account_set_org M
        LEFT JOIN
        enterprise_account_set N
        ON
        M.enterprise_account_set_id = N.ID
        WHERE
        M.organization_id = #{orgId}
    </select>
</mapper>