package com.bcxin.api.interfaces.tenants.responses;

import com.bcxin.api.interfaces.ResponseAbstract;
import lombok.Getter;

@Getter
public class ContractReportResponse extends ResponseAbstract {

    private static final long serialVersionUID = 8556407864044628410L;

    //合同总数
    private final long total;
    //待完善
    private final long incompleteCount;
    //生效中
    private final long effectCount;
    //待生效
    private final long beEffectCount;
    //即将到期
    private final long dueCount;
    //终止
    private final long stopCount;
    //未签订员工
    private final long unSignCount;
    //未签订保安员
    private final long secUnSignCount;
    //离职人员的合同
    private final long leaveCount;

    public ContractReportResponse(long total,
                                  long incompleteCount,
                                  long effectCount,
                                  long beEffectCount,
                                  long dueCount,
                                  long stopCount,
                                  long unSignCount,
                                  long secUnSignCount,
                                  long leaveCount) {
        this.total = total;
        this.incompleteCount = incompleteCount;
        this.effectCount = effectCount;
        this.beEffectCount = beEffectCount;
        this.dueCount = dueCount;
        this.stopCount = stopCount;
        this.unSignCount = unSignCount;
        this.secUnSignCount = secUnSignCount;
        this.leaveCount = leaveCount;
    }

    public static ContractReportResponse create(long total,
                                                long incompleteCount,
                                                long effectCount,
                                                long beEffectCount,
                                                long dueCount,
                                                long stopCount,
                                                long unSignCount,
                                                long secUnSignCount,
                                                long leaveCount) {
        return new ContractReportResponse(total,
                incompleteCount,
                effectCount,
                beEffectCount,
                dueCount,
                stopCount,
                unSignCount,
                secUnSignCount,
                leaveCount);
    }
}
