package com.cool.store.vo.point;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * <p>
 * 铺位导出VO
 * </p>
 *
 * @author wangff
 * @since 2026/2/10
 */
@Data
public class PointExportVO {
    @ApiModelProperty("店铺id")
    @ExcelIgnore
    private Long pointId;

    @ApiModelProperty("铺位名称")
    @ExcelProperty(value = "铺位名称", order = 2)
    @ColumnWidth(30)
    private String pointName;

    @ApiModelProperty("铺位编号")
    @ExcelProperty(value = "铺位编号", order = 1)
    @ColumnWidth(30)
    private String pointCode;

    @ApiModelProperty("所属站区")
    @ExcelProperty(value = "所属大区", order = 5)
    @ColumnWidth(30)
    private String regionNodeName;

    @ExcelProperty(value = "铺位状态", order = 6)
    @ColumnWidth(30)
    private String pointStatusName;

    @ApiModelProperty("拓展专员")
    @ExcelProperty(value = "选址人员", order = 4)
    @ColumnWidth(30)
    private String developmentManagerUsername;

    @ApiModelProperty("铺位地址")
    @ExcelProperty(value = "铺位地址", order = 3)
    @ColumnWidth(30)
    private String address;

    @ApiModelProperty("创建时间")
    @ExcelProperty(value = "创建时间", order = 11)
    @ColumnWidth(30)
    private Date createTime;

    @ApiModelProperty("更新时间")
    @ExcelProperty(value = "最近更新时间", order = 10)
    @ColumnWidth(30)
    private Date updateTime;

    @ApiModelProperty("成功开店")
    @ExcelProperty(value = "成功开店", order = 7)
    @ColumnWidth(30)
    private String openShopName;

    @ApiModelProperty("所属机会点编码")
    @ExcelProperty(value = "所属机会点编码", order = 8)
    @ColumnWidth(30)
    private String opportunityPointCode;
    @ApiModelProperty("所属机会点名称")
    @ExcelProperty(value = "所属机会点", order = 9)
    @ColumnWidth(30)
    private String opportunityPointName;

    @ApiModelProperty("设备费")
    @ExcelProperty(value = "设备费", order = 12)
    @ColumnWidth(20)
    private BigDecimal equipmentCost;

    @ApiModelProperty("装修费")
    @ExcelProperty(value = "装修费", order = 13)
    @ColumnWidth(20)
    private BigDecimal decorationCost;

    @ApiModelProperty("加盟费")
    @ExcelProperty(value = "加盟费", order = 14)
    @ColumnWidth(20)
    private BigDecimal franchiseFee;

    @ApiModelProperty("管理费")
    @ExcelProperty(value = "管理费", order = 15)
    @ColumnWidth(20)
    private BigDecimal managementFee;

    @ApiModelProperty("设计费")
    @ExcelProperty(value = "设计费", order = 16)
    @ColumnWidth(20)
    private BigDecimal designFee;

    @ApiModelProperty("首批进货成本")
    @ExcelProperty(value = "首批进货成本", order = 17)
    @ColumnWidth(20)
    private BigDecimal firstInventoryCost;

    @ApiModelProperty("押金")
    @ExcelProperty(value = "押金", order = 18)
    @ColumnWidth(20)
    private BigDecimal deposit;

    @ApiModelProperty("初始投资额")
    @ExcelProperty(value = "初始投资额合计", order = 19)
    @ColumnWidth(20)
    private BigDecimal initialInvestment;

    @ApiModelProperty("日均订单量")
    @ExcelProperty(value = "日均订单量", order = 20)
    @ColumnWidth(20)
    private Integer avgDailyOrders;

    @ApiModelProperty("日均单价")
    @ExcelProperty(value = "日均单价", order = 21)
    @ColumnWidth(20)
    private BigDecimal avgOrderPrice;

    @ApiModelProperty("每年运营天数")
    @ExcelProperty(value = "每年运营天数", order = 22)
    @ColumnWidth(20)
    private Integer operatingDaysPerYear;

    @ApiModelProperty("每日销售额")
    @ExcelProperty(value = "每日销售额", order = 23)
    @ColumnWidth(20)
    private BigDecimal dailySales;

    @ApiModelProperty("全年GMV")
    @ExcelProperty(value = "全年GMV", order = 24)
    @ColumnWidth(20)
    private BigDecimal annualGmv;

    @ApiModelProperty("每月销售额")
    @ExcelProperty(value = "每月销售额", order = 25)
    @ColumnWidth(20)
    private BigDecimal monthlySales;

    @ApiModelProperty("门店产品毛利率")
    @ExcelProperty(value = "门店产品毛利率(%)", order = 26)
    @ColumnWidth(20)
    private BigDecimal grossMarginRate;

    @ApiModelProperty("正新货品年收入")
    @ExcelProperty(value = "正新货品年收入", order = 27)
    @ColumnWidth(20)
    private BigDecimal annualIncome;

    @ApiModelProperty("材料成本")
    @ExcelProperty(value = "材料成本(元/年)", order = 28)
    @ColumnWidth(20)
    private BigDecimal materialCostAnnual;

    @ApiModelProperty("材料成本")
    @ExcelProperty(value = "材料成本(元/月)", order = 29)
    @ColumnWidth(20)
    private BigDecimal materialCostMonthly;

    @ApiModelProperty("材料成本占收入")
    @ExcelProperty(value = "材料成本占收入%", order = 30)
    @ColumnWidth(20)
    private BigDecimal materialCostRate;

    @ApiModelProperty("人员数量")
    @ExcelProperty(value = "人员数量", order = 31)
    @ColumnWidth(20)
    private Integer staffCount;

    @ApiModelProperty("平均工资")
    @ExcelProperty(value = "平均工资", order = 32)
    @ColumnWidth(20)
    private BigDecimal avgSalary;

    @ApiModelProperty("员工成本")
    @ExcelProperty(value = "员工成本(元/年)", order = 33)
    @ColumnWidth(20)
    private BigDecimal staffCostAnnual;

    @ApiModelProperty("员工成本占收入")
    @ExcelProperty(value = "员工成本占收入%", order = 34)
    @ColumnWidth(20)
    private BigDecimal staffCostRate;

    @ApiModelProperty("租金成本(元/年)")
    @ExcelProperty(value = "租金成本(元/年)", order = 35)
    @ColumnWidth(20)
    private BigDecimal rentCostAnnual;

    @ApiModelProperty("租金成本占收入%")
    @ExcelProperty(value = "租金成本占收入%", order = 36)
    @ColumnWidth(20)
    private BigDecimal rentCostRate;

    @ApiModelProperty("外卖占总营业额")
    @ExcelProperty(value = "外卖占总营业额%", order = 37)
    @ColumnWidth(20)
    private BigDecimal takeawayRate;

    @ApiModelProperty("外卖抽点比例")
    @ExcelProperty(value = "外卖抽点比例(%)", order = 38)
    @ColumnWidth(20)
    private BigDecimal platformCommissionRate;

    @ApiModelProperty("外卖抽点")
    @ExcelProperty(value = "外卖抽点", order = 39)
    @ColumnWidth(20)
    private BigDecimal platformCommission;

    @ApiModelProperty("水电开支")
    @ExcelProperty(value = "水电开支", order = 40)
    @ColumnWidth(20)
    private BigDecimal utilityCost;

    @ApiModelProperty("水电开支占收入")
    @ExcelProperty(value = "水电开支占收入%", order = 41)
    @ColumnWidth(20)
    private BigDecimal utilityCostRate;

    @ApiModelProperty("其他")
    @ExcelProperty(value = "其他（含配送费用）", order = 42)
    @ColumnWidth(20)
    private BigDecimal otherCost;

    @ApiModelProperty("其他占收入")
    @ExcelProperty(value = "其他占收入%", order = 43)
    @ColumnWidth(20)
    private BigDecimal otherCostRate;

    @ApiModelProperty("门店经营利润")
    @ExcelProperty(value = "门店经营利润", order = 44)
    @ColumnWidth(20)
    private BigDecimal operatingProfit;

    @ApiModelProperty("门店经营利润率")
    @ExcelProperty(value = "门店经营利润率(%)", order = 45)
    @ColumnWidth(20)
    private BigDecimal operatingProfitRate;

    @ApiModelProperty("回报期 - 年")
    @ExcelProperty(value = "回报期(年)", order = 46)
    @ColumnWidth(20)
    private BigDecimal paybackPeriodYears;

    @ApiModelProperty("回报期 - 月")
    @ExcelProperty(value = "回报期(月)", order = 47)
    @ColumnWidth(20)
    private BigDecimal paybackPeriodMonths;

}
