/**
 * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com).
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.xiaoniu.subsystem.business.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xiaoniu.common.core.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 费用管理表视图实体类
 *
 * @author sst
 * @since 2024-11-26
 */
@Data
@Schema(description = "费用管理表")
public class ExpenseExcelVO {
    @Serial
    private static final long serialVersionUID = 1L;

    @Excel(name = "专业（班次）名称", headerColor = IndexedColors.RED, sort = 1)
    @Schema(description = "专业（班次）名称")
    private String flightName;

    @Excel(name = "专业（班次）编码")
    @Schema(description = "专业（班次）编码")
    private String flightCode;

    @Excel(name = "承训单位名称")
    @Schema(description = "承训单位名称")
    private String trainingUnitName;

    @Excel(name = "承训单位性质")
    @Schema(description = "承训单位性质")
    private String trainingUnitNature;

    @Excel(name = "培训地点")
    @Schema(description = "培训地点")
    private String trainingSite;

    @Excel(name = "机关预算金额")
    @Schema(description = "机关预算金额")
    private String organBudgetedAmount;

    @Excel(name = "承训单位预算金额")
    @Schema(description = "承训单位预算金额")
    private String trainingBudgetedAmount;

    @Excel(name = "限额标准")
    @Schema(description = "限额标准")
    private String quotaStandard;

    @Excel(name = "结算金额")
    @Schema(description = "结算金额")
    private String settlementAmount;

    @Excel(name = "房间个数")
    @Schema(description = "房间个数")
    private String roomsNumber;

    @Excel(name = "房间单价")
    @Schema(description = "房间单价")
    private String roomsUnitPrice;

    @Excel(name = "住宿费")
    @Schema(description = "住宿费")
    private String accommodationCost;

    @Excel(name = "伙食费单价")
    @Schema(description = "伙食费单价")
    private String mealsUnitPrice;

    @Excel(name = "伙食费")
    @Schema(description = "伙食费")
    private String boardMoney;

    @Excel(name = "会议室个数")
    @Schema(description = "会议室个数")
    private String conferenceRoomNumber;

    @Excel(name = "会议室单价")
    @Schema(description = "会议室单价")
    private String conferenceRoomUnitPrice;

    @Excel(name = "场地费（会议室）")
    @Schema(description = "场地费（会议室）")
    private String conferenceRoom;

    @Excel(name = "车间个数")
    @Schema(description = "车间个数")
    private String workshopNumber;

    @Excel(name = "车间单价")
    @Schema(description = "车间单价")
    private String workshopUnitPrice;

    @Excel(name = "场地费（生产车间）")
    @Schema(description = "场地费（生产车间）")
    private String productionWorkshop;

    @Excel(name = "其他费用（培训资料费）")
    @Schema(description = "其他费用（培训资料费）")
    private String trainingMaterialsFee;

    @Excel(name = "其他费用（交通费）")
    @Schema(description = "其他费用（交通费）")
    private String transportatioExpense;

    @Excel(name = "其他费用（讲课费）")
    @Schema(description = "其他费用（讲课费）")
    private String lectureFee;

    @Excel(name = "其他费用（保障管理费）")
    @Schema(description = "其他费用（保障管理费）")
    private String supportManagementFee;

    @Excel(name = "其他费用")
    @Schema(description = "其他费用")
    private String otherExpenses;

    @Excel(name = "合计")
    @Schema(description = "合计")
    private BigDecimal total;

    @Excel(name = "实际参训人数")
    @Schema(description = "实际参训人数")
    private String participantsNumber;

    @Excel(name = "计划参训人数")
    @Schema(description = "计划参训人数")
    private String plannedNumber;

    @Excel(name = "培训天数")
    @Schema(description = "培训天数")
    private String trainingDays;

    @Excel(name = "开训时间", dateFormat = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "开训时间")
    private Date trainingTime;

    @Excel(name = "结束时间", dateFormat = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "结束时间")
    private Date endTime;

    @Excel(name = "年度")
    @Schema(description = "年度")
    private String year;

    @Excel(name = "备注")
    @Schema(description = "备注")
    private String remark;
}
