package com.greenorange.promotion.model.vo.project;

import com.greenorange.promotion.model.vo.projectDetail.ProjectDetailVO;
import com.greenorange.promotion.model.vo.projectNotification.ProjectNotificationVO;
import com.greenorange.promotion.model.vo.promoCodeApply.PromoCodeApplyVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

@Data
public class ProjectAllDetailVO implements Serializable {

    /**
     * 项目 ID
     */
    @Schema(description = "项目 ID", example = "1")
    private Long id;

    /**
     * 项目名称
     */
    @Schema(description = "项目名称", example = "美团省钱包")
    private String projectName;

    /**
     * 项目图片URL
     */
    @Schema(description = "项目图片URL", example = "8E9WE24M")
    private String projectImage;

    /**
     * 项目价格
     */
    @Schema(description = "项目价格", example = "6.88")
    private BigDecimal projectPrice;

    /**
     * 项目简介
     */
    @Schema(description = "项目简介", example = "不限制推广方式，禁止/恶意/夸大虚假宣传")
    private String projectDescription;


    /**
     * 项目状态[项目运行(running)|人数已满(full)|项目暂停(paused)]
     */
    @Schema(description = "项目状态[项目运行(running)|人数已满(full)|项目暂停(paused)]", example = "running")
    private String projectStatus;


    /**
     * 结算说明（富文本）
     */
    @Schema(description = "结算说明（富文本）", example = "富文本")
    private String settlementDesc;

    /**
     * 项目说明（富文本）
     */
    @Schema(description = "项目说明（富文本）", example = "富文本")
    private String projectDesc;

    /**
     * 项目流程（富文本）
     */
    @Schema(description = "项目流程（富文本）", example = "富文本")
    private String projectFlow;

    /**
     * 申请推广码说明（富文本）
     */
    private String applyPromoCodeDesc;

    /**
     * 项目通知列表
     */
    @Schema(description = "项目通知列表")
    private List<ProjectNotificationVO> projectNotificationVOList;

    /**
     * 项目明细列表
     */
    @Schema(description = "项目明细列表")
    private List<ProjectDetailVO> projectAllDetailVOList;

    /**
     * 申请的推广码列表
     */
    @Schema(description = "申请的推广码列表")
    private List<PromoCodeApplyVO> promoCodeApplyVOList;


    @Serial
    private static final long serialVersionUID = 1L;

}
