package com.ycwl.basic.integration.profitshare.dto.rule;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * 分账接收人请求
 *
 * @author Claude Code
 * @date 2025-01-11
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CreateRecipientRequest {

    private Integer id;

    /**
     * 接收人名称
     */
    @JsonProperty("recipient_name")
    private String recipientName;

    /**
     * 接收人类型（platform, merchant, agent）
     */
    @JsonProperty("recipient_type")
    private String recipientType;

    /**
     * 账户信息
     */
    @JsonProperty("account_info")
    private String accountInfo;

    /**
     * 分账类型（percentage, fixed_amount）
     */
    @JsonProperty("share_type")
    private String shareType;

    /**
     * 分账值（百分比或固定金额）
     */
    @JsonProperty("share_value")
    private Double shareValue;

    /**
     * 最小分账金额
     */
    @JsonProperty("min_amount")
    private Double minAmount;

    /**
     * 最大分账金额
     */
    @JsonProperty("max_amount")
    private Double maxAmount;

    /**
     * 优先级
     */
    @JsonProperty("priority")
    private Integer priority;

    /**
     * 扩展配置
     */
    @JsonProperty("ext_config")
    private Map<String, Object> extConfig;

    /**
     * 是否需要调支付分账
     */
    @JsonProperty("need_payment_call")
    private Integer needPaymentCall;
}
