package com.honey.honey.dto;

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

/**
 * Request body for external POST api/v1/withdrawal.
 */
@Data
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
public class WithdrawalApiRequest {

    @JsonProperty("pid")
    private Integer pid;

    @JsonProperty("user_id")
    private Integer userId;

    @JsonProperty("wallet")
    private String wallet;

    @JsonProperty("amount_usd")
    private Double amountUsd;

    /** When 1, crypto system treats payout as manual. Omitted when null. Set only if user completed referral task 50 or 100. */
    @JsonProperty("manual_pay")
    private Integer manualPay;

    @JsonProperty("user_data")
    private UserData userData;

    @Data
    @Builder
    public static class UserData {
        @JsonProperty("internal_id")
        private Integer internalId;
        @JsonProperty("screen_name")
        private String screenName;
        @JsonProperty("tg_username")
        private String tgUsername;
        @JsonProperty("tg_id")
        private String tgId;
        @JsonProperty("country_code")
        private String countryCode;
        @JsonProperty("device_code")
        private String deviceCode;
        @JsonProperty("language_code")
        private String languageCode;
        @JsonProperty("user_ip")
        private String userIp;
    }
}
