package com.slodon.b2b2c.investment.bean.analysis.bo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author sunshihao
 * @version 1.0
 * @description: TODO
 * @date 2025/8/6 15:34
 */
@Data
public class RankBO {
    @ApiModelProperty("关键词")
    private  String keyword;

    @ApiModelProperty("月平均搜索量")
    private  Long searchVolume;

    @ApiModelProperty("月度变化")
    private  Long monthly;

    @ApiModelProperty("季度变化")
    private  Long quarterly;

    @ApiModelProperty("年度变化")
    private  Long yearly;

    @ApiModelProperty("难度")
    private  Integer dp;

    @ApiModelProperty("每次点击费用")
    private  Double cpc;

    public static RankBOBuilder builder() {
        return new RankBOBuilder();
    }

    public static class RankBOBuilder {
        private String keyword;
        private Long searchVolume;
        private Long monthly;
        private Long quarterly;
        private Long yearly;
        private Integer dp;
        private Double cpc;

        public RankBOBuilder keyword(String keyword) {
            this.keyword = keyword;
            return this;
        }

        public RankBOBuilder searchVolume(Long searchVolume) {
            this.searchVolume = searchVolume;
            return this;
        }

        public RankBOBuilder monthly(Long monthly) {
            this.monthly = monthly;
            return this;
        }

        public RankBOBuilder quarterly(Long quarterly) {
            this.quarterly = quarterly;
            return this;
        }

        public RankBOBuilder yearly(Long yearly) {
            this.yearly = yearly;
            return this;
        }

        public RankBOBuilder dp(Integer dp) {
            this.dp = dp;
            return this;
        }

        public RankBOBuilder cpc(Double cpc) {
            this.cpc = cpc;
            return this;
        }

        public RankBO build() {
            RankBO rankBO = new RankBO();
            rankBO.setKeyword(this.keyword);
            rankBO.setSearchVolume(this.searchVolume);
            rankBO.setMonthly(this.monthly);
            rankBO.setQuarterly(this.quarterly);
            rankBO.setYearly(this.yearly);
            rankBO.setDp(this.dp);
            rankBO.setCpc(this.cpc);
            return rankBO;
        }
    }

}
