<?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="com.ai.da.mapper.secondary.AttributeRetrievalMapper">
    <resultMap id="BaseResultMap" type="com.ai.da.mapper.secondary.entity.AttributeRetrieval">
        <id column="ID" property="id" />
        <result column="img_name" property="imgName" />
        <result column="length" property="length" />
        <result column="sleeve_length" property="sleeveLength" />
        <result column="sleeve_shape" property="sleeveShape" />
        <result column="sleeve_shoulder" property="sleeveShoulder" />
        <result column="neckline" property="neckline" />
        <result column="collar" property="collar" />
        <result column="design" property="design" />
        <result column="silhouette" property="silhouette" />
        <result column="type" property="type" />
        <result column="opening_type" property="openingType" />
        <result column="subtype" property="subtype" />
    </resultMap>
    <insert id="insertSketch">
        INSERT INTO ${tableName} (img_name, style)
        VALUES (#{attributeRetrievalAttrDict.imgName}, #{attributeRetrievalAttrDict.style})
    </insert>

    <select id="getSystemSketchPool" resultMap="BaseResultMap">
        SELECT
        *
        FROM
        ${tableName}
        <trim prefix="WHERE" prefixOverrides="AND">
            <if test="attributeRetrievalAttrDict.design != null">
                AND design = #{attributeRetrievalAttrDict.design}
            </if>
            <if test="attributeRetrievalAttrDict.silhouette != null">
                AND silhouette = #{attributeRetrievalAttrDict.silhouette}
            </if>
            <if test="style != null">
                AND style = #{style}
            </if>
            AND deprecated = 0
        </trim>
        ORDER BY
        RAND()
        LIMIT #{poolNum}
    </select>

    <select id="getSystemRandom" resultMap="BaseResultMap">
        SELECT
            *
        FROM
            ${tableName}
        <trim prefix="WHERE" prefixOverrides="AND">
            <if test="style != null">
                AND style = #{style}
            </if>
            AND deprecated = 0
        </trim>
        ORDER BY
            RAND()
            LIMIT 1
    </select>

    <select id="getSystemSketchPoolBySameCategory" resultMap="BaseResultMap">
        SELECT
        *
        FROM
        ${tableName}
        <trim prefix="WHERE" prefixOverrides="AND">
            <if test="attributeRetrievalAttrDict.type != null">
                AND type = #{attributeRetrievalAttrDict.type}
            </if>
            <if test="attributeRetrievalAttrDict.openingType != null">
                AND opening_type = #{attributeRetrievalAttrDict.openingType}
            </if>
            <if test="attributeRetrievalAttrDict.subtype != null">
                AND subtype = #{attributeRetrievalAttrDict.subtype}
            </if>
            <if test="style != null">
                AND style = #{style}
            </if>
            AND deprecated = 0
        </trim>
        ORDER BY
        RAND()
        LIMIT 20
    </select>

    <select id="getIdByFileName" resultType="java.lang.Long">
        SELECT
            ID
        FROM
            ${tableName}
        WHERE img_name = #{fileName}
    </select>

    <update id="updateStyleById">
        update ${tableName}
            set style = #{style}
        where ID = #{id}
    </update>

    <update id="updateStyleByFileName">
        UPDATE
            ${tableName}
        SET
            style = #{style}
        WHERE
            img_name = #{fileName}
    </update>

    <select id="getStyleByUrl" resultType="java.lang.String">
        SELECT
            style
        FROM
            ${tableName}
        WHERE img_name = #{replace}
    </select>
    <select id="getCountByStyle" resultType="java.lang.Integer">
        SELECT
            count(*)
        FROM
            ${tableName}
        WHERE style = #{style} and deprecated = 0
    </select>

    <select id="getOneSystemSketchRadom" resultType="java.lang.String">
        SELECT
            img_name
        FROM
            ${tableName}
        WHERE style = #{style}
        and deprecated = 0
        ORDER BY ID LIMIT #{randomNum},1
    </select>
</mapper>
