package cn.qihangerp.model.request;

import lombok.Data;

/**
 * {@code POST /external/goods/pdd/quantity/update}：与 {@link ExternalGoodsUpsertRequest}/{@link ExternalGoodsDelistRequest}
 * 相同维度键（{@code shopId}+{@code outGoodsId}+{@code outSkuId}），由 ERP-Open 根据 {@code o_goods}/{@code o_goods_sku}.{@code canonicalExt}
 * 中已落库的拼多多 ID 调用 {@code pdd.goods.quantity.update}。调用方无需传拼多多 {@code goods_id}/{@code sku_id}。
 */
@Data
public class ExternalGoodsPddQuantityUpdateRequest {

    /** 与 upsert/delist 一致：业务侧店铺维度标识 */
    private Long shopId;

    /** 与 upsert 的 {@code outGoodsId} 一致：外部（中台）商品 ID，对应 {@code o_goods.outer_erp_goods_id} */
    private String outGoodsId;

    /** 与 upsert SKU 的 {@code outSkuId} 一致：外部（中台）SKU ID，对应 {@code o_goods_sku.outer_erp_sku_id} */
    private String outSkuId;

    /** 库存数量 */
    private Long quantity;

    /**
     * 更新类型，参见拼多多开放平台；常见 {@code 1}。
     */
    private Integer updateType;

    /**
     * 是否使用 {@code force_update}（默认 {@code true}）。
     */
    private Boolean forceUpdate;

    /**
     * 可选，透传 POP {@code outer_id}（与 {@code pdd.goods.quantity.update} 一致）。
     */
    private String outerId;

    /** 拼多多 POP 凭证，与 upsert 的 {@link ExternalGoodsUpsertRequest#getPddPopAuth()} 结构一致 */
    private ExternalGoodsUpsertRequest.PddPopAuth pddPopAuth;
}
