<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.itn.itnhub.code.CodeMapper">

  <!--
    attrs는 jsonb지만 ::text로 문자열로 받는다. 커스텀 TypeHandler를 두면 매퍼마다
    등록을 신경써야 하는데, 코드는 기동 후 한 번만 읽으므로 서비스에서 파싱하는 편이 단순하다.
  -->
  <select id="findAllCodes" resultType="kr.itn.itnhub.code.CodeRow">
    select group_id, code, label, sort_order, active, attrs::text as attrs_json
    from code
    order by group_id, sort_order
  </select>

  <select id="findAllGroups" resultType="kr.itn.itnhub.code.CodeGroup">
    select group_id, group_name, description, editable
    from code_group
    order by group_id
  </select>

</mapper>
