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

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

import java.util.ArrayList;
import java.util.List;

@Schema(description = "成本测算方案（v4）")
public class McpDraftSchemeResponse {

    @Schema(description = "方案编码", example = "SCHEME_A")
    private String code;

    @Schema(description = "方案标题", example = "灵活用工模式（推荐）")
    private String title;

    @Schema(description = "标签", example = "[\"业务真实\", \"资金合规\"]")
    private List<String> tags = new ArrayList<>();

    @Schema(description = "是否推荐方案")
    private Boolean recommended;

    @Schema(description = "企业成本")
    private McpDraftSchemeCostResponse cost;

    @JsonProperty("worker_income")
    @Schema(description = "员工收入合计")
    private McpDraftSchemeWorkerIncomeResponse workerIncome;

    @JsonProperty("by_settlement_cycle")
    @Schema(description = "按结算方式（daily/weekly/monthly）分类展示人均成本、到手、分项费用等")
    private List<McpDraftSettlementCycleBreakdown> bySettlementCycle = new ArrayList<>();

    @JsonProperty("group_breakdown")
    @Schema(description = "按工种拆分成本与实得")
    private List<McpDraftGroupBreakdownItem> groupBreakdown = new ArrayList<>();

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public List<String> getTags() {
        return tags;
    }

    public void setTags(List<String> tags) {
        this.tags = tags;
    }

    public Boolean getRecommended() {
        return recommended;
    }

    public void setRecommended(Boolean recommended) {
        this.recommended = recommended;
    }

    public McpDraftSchemeCostResponse getCost() {
        return cost;
    }

    public void setCost(McpDraftSchemeCostResponse cost) {
        this.cost = cost;
    }

    public McpDraftSchemeWorkerIncomeResponse getWorkerIncome() {
        return workerIncome;
    }

    public void setWorkerIncome(McpDraftSchemeWorkerIncomeResponse workerIncome) {
        this.workerIncome = workerIncome;
    }

    public List<McpDraftSettlementCycleBreakdown> getBySettlementCycle() {
        return bySettlementCycle;
    }

    public void setBySettlementCycle(List<McpDraftSettlementCycleBreakdown> bySettlementCycle) {
        this.bySettlementCycle = bySettlementCycle;
    }

    public List<McpDraftGroupBreakdownItem> getGroupBreakdown() {
        return groupBreakdown;
    }

    public void setGroupBreakdown(List<McpDraftGroupBreakdownItem> groupBreakdown) {
        this.groupBreakdown = groupBreakdown;
    }
}
