package com.yc.ship.module.product.api.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "RPC 服务 - Product 基础产品 Response DTO")
@Data
public class ProductBaseRespDTO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "3854")
    private Long id;

    @Schema(description = "名称", example = "赵六")
    private String name;

    @Schema(description = "简称", example = "张三")
    private String shortName;

    @Schema(description = "项目ID", example = "16652")
    private Long projectId;

    @Schema(description = "所属资源ID", example = "16652")
    private Long resourceCategoryId;

    @Schema(description = "优先资源ID")
    private Long firstResourceId;

    @Schema(description = "固定使用资源ID")
    private Long fixedResourceId;

    @Schema(description = "能否重复购买:0不可以，1可以")
    private Integer canRepeatBuy;

    @Schema(description = "检票计算方式;(1.按基础票检票次数计算 2.按通道检票次数计算", example = "1")
    private Integer checkType;

    @Schema(description = "有效期次数")
    private Integer checkTimes;

    @Schema(description = "是否可以退票;0不可退，1可退")
    private Integer isRefund;

    @Schema(description = "是否自动检票;开启时只要组合票中有一张子票核销，该产品自动核销")
    private Integer isAutoCheck;

    @Schema(description = "是否购买即核销")
    private Integer isBuyCheck;

    @Schema(description = "开始点位", example = "1209")
    private Long startPoint;

    @Schema(description = "结束点位", example = "6830")
    private Long endPoint;

    @Schema(description = "是否启用0否 1是", example = "1")
    private Integer useStatus;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "产品库存(不设置为无限)")
    private Integer stock;

    @Schema(description = "资源类型")
    private String resourceName;

    @Schema(description = "所属项目")
    private String projectName;

    @Schema(description = "最低成本价", example = "99")
    private BigDecimal costPrice;

    @Schema(description = "最低销售价", example = "199")
    private BigDecimal salePrice;


    @Schema(description = " 基础产品价格")
    private List<ProductBasePriceRespDTO> basePriceList;

    @Schema(description = " 产品检票通道")
    private List<CheckChannelRespDTO> checkChannelList;

    @Schema(description = "资源列表")
    private List<ResourceSimpleRespDTO> resourceList;


}