package com.huimv.employment.service.draft.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;

/**
 * 方案下按结算方式（日/周/月）分类的成本与收入展示。
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(description = "按结算方式分类的成本明细")
public class McpDraftSettlementCycleBreakdown {

    @JsonProperty("settlement_cycle")
    @Schema(description = "结算方式：daily / weekly / monthly")
    private String settlementCycle;

    @JsonProperty("worker_count")
    @Schema(description = "该结算方式下人数合计")
    private Integer workerCount;

    @JsonProperty("period_units")
    @Schema(description = "人期合计 = Σ(人数×期数)；日结为人天、周结为人周、月结为人月")
    private String periodUnits;

    @JsonProperty("avg_cost")
    @Schema(description = "人均成本（元/人/本结算单位）", example = "640.00")
    private String avgCost;

    @JsonProperty("unit_net")
    @Schema(description = "工人到手（元/人/本结算单位）", example = "500.00")
    private String unitNet;

    @JsonProperty("unit_gross")
    @Schema(description = "税前收入（元/人/本结算单位）", example = "500.00")
    private String unitGross;

    @JsonProperty("labor_fee")
    @Schema(description = "劳务费合计（即税前收入合计）", example = "4000.00")
    private String laborFee;

    @JsonProperty("service_fee")
    @Schema(description = "服务费/管理成本合计", example = "320.00")
    private String serviceFee;

    @JsonProperty("insurance_fee")
    @Schema(description = "保险/社保合计", example = "80.00")
    private String insuranceFee;

    @JsonProperty("tax_fee")
    @Schema(description = "代扣/代征税费合计（展示用）", example = "720.00")
    private String taxFee;

    @JsonProperty("total_cost")
    @Schema(description = "该结算方式下企业总成本", example = "5120.00")
    private String totalCost;

    @Schema(description = "工人到手合计", example = "4000.00")
    private String net;

    public String getSettlementCycle() {
        return settlementCycle;
    }

    public void setSettlementCycle(String settlementCycle) {
        this.settlementCycle = settlementCycle;
    }

    public Integer getWorkerCount() {
        return workerCount;
    }

    public void setWorkerCount(Integer workerCount) {
        this.workerCount = workerCount;
    }

    public String getPeriodUnits() {
        return periodUnits;
    }

    public void setPeriodUnits(String periodUnits) {
        this.periodUnits = periodUnits;
    }

    public String getAvgCost() {
        return avgCost;
    }

    public void setAvgCost(String avgCost) {
        this.avgCost = avgCost;
    }

    public String getUnitNet() {
        return unitNet;
    }

    public void setUnitNet(String unitNet) {
        this.unitNet = unitNet;
    }

    public String getUnitGross() {
        return unitGross;
    }

    public void setUnitGross(String unitGross) {
        this.unitGross = unitGross;
    }

    public String getLaborFee() {
        return laborFee;
    }

    public void setLaborFee(String laborFee) {
        this.laborFee = laborFee;
    }

    public String getServiceFee() {
        return serviceFee;
    }

    public void setServiceFee(String serviceFee) {
        this.serviceFee = serviceFee;
    }

    public String getInsuranceFee() {
        return insuranceFee;
    }

    public void setInsuranceFee(String insuranceFee) {
        this.insuranceFee = insuranceFee;
    }

    public String getTaxFee() {
        return taxFee;
    }

    public void setTaxFee(String taxFee) {
        this.taxFee = taxFee;
    }

    public String getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(String totalCost) {
        this.totalCost = totalCost;
    }

    public String getNet() {
        return net;
    }

    public void setNet(String net) {
        this.net = net;
    }
}
