package com.lesingle.edu.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 课程套餐实体（两层结构-最上层）
 * 课程套餐包含多个课程包
 */
@Schema(description = "课程套餐实体")
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("course_collection")
public class CourseCollection extends BaseEntity {

    @Schema(description = "套餐名称")
    private String name;

    @Schema(description = "套餐描述")
    private String description;

    @Schema(description = "价格（分）")
    private Long price;

    @Schema(description = "折后价格（分）")
    private Long discountPrice;

    @Schema(description = "折扣类型：PERCENTAGE、FIXED")
    private String discountType;

    @Schema(description = "适用年级（JSON数组）")
    private String gradeLevels;

    @Schema(description = "包含的课程包数量")
    private Integer packageCount;

    @Schema(description = "状态：DRAFT、PENDING_REVIEW、APPROVED、REJECTED、PUBLISHED、OFFLINE")
    private String status;

    @Schema(description = "提交时间")
    private LocalDateTime submittedAt;

    @Schema(description = "提交人ID")
    private Long submittedBy;

    @Schema(description = "审核时间")
    private LocalDateTime reviewedAt;

    @Schema(description = "审核人ID")
    private Long reviewedBy;

    @Schema(description = "审核意见")
    private String reviewComment;

    @Schema(description = "发布时间")
    private LocalDateTime publishedAt;
}
