package cn.qihangerp.service.external.pdd;

/**
 * 拼多多「商品编辑」侧图片素材角色，用于在发品前按角色套用不同校验规则。
 * <p>
 * 对应业务文档中的素材分类（轮播 / 商详 / SKU），与 {@code pdd.goods.add} 根字段的映射关系：
 * <ul>
 *   <li>{@link #CAROUSEL} — {@code carousel_gallery[]}，主轮播图</li>
 *   <li>{@link #DETAIL} — {@code detail_gallery[]}，商品详情图</li>
 *   <li>{@link #SKU_THUMB} — {@code sku_list[].thumb_url}，SKU 缩略图</li>
 * </ul>
 * 同一 URL 若同时出现在轮播与详情中，须<strong>同时满足</strong>两种角色的全部约束（取交集）。
 */
public enum PddGoodsMaterialRole {

    /**
     * 轮播图（商品编辑）。
     * <p>规则摘要（与内部常量一致，详见 {@link PddGoodsMaterialImageValidator}）：</p>
     * <ul>
     *   <li>尺寸：<strong>等宽高</strong>（宽=高）；边长 <strong>≥ 480px</strong></li>
     *   <li>文件大小：<strong>≤ 1MB</strong></li>
     * </ul>
     */
    CAROUSEL,

    /**
     * 商详图（商品编辑）。
     * <p>规则摘要：</p>
     * <ul>
     *   <li>宽高比（业务约定 <strong>理解 A</strong>）：<strong>宽 ÷ 高 &gt; 1/3</strong>（严格大于），
     *       即禁止「过竖」长图：等价于在正像素下 <strong>高 &lt; 3×宽</strong>。
     *       若取等号（高=3×宽）则 <code>宽/高=1/3</code>，不满足「&gt; 1/3」，判失败。</li>
     *   <li>宽度：<strong>≥ 480px</strong></li>
     *   <li>文件大小：<strong>≤ 1MB</strong></li>
     * </ul>
     */
    DETAIL,

    /**
     * SKU 图（商品编辑）。
     * <p>规则摘要：</p>
     * <ul>
     *   <li>比例：<strong>1:1</strong>（宽=高）</li>
     *   <li>边长：宽、高均 <strong>&gt; 480px</strong>（严格大于，即至少 481×481 像素）</li>
     *   <li>文件大小：<strong>≤ 1MB</strong></li>
     * </ul>
     */
    SKU_THUMB
}
