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.LocalDate;
import java.time.LocalDateTime;

/**
 * 日程计划实体
 */
@Schema(description = "日程计划实体")
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("schedule_plan")
public class SchedulePlan extends BaseEntity {

    @Schema(description = "租户 ID")
    private Long tenantId;

    @Schema(description = "计划名称")
    private String name;

    @Schema(description = "班级 ID")
    private Long classId;

    @Schema(description = "课程 ID")
    private Long courseId;

    @Schema(description = "课程包 ID")
    private Long coursePackageId;

    @Schema(description = "课程类型")
    private String lessonType;

    @Schema(description = "教师 ID")
    private Long teacherId;

    @Schema(description = "排课日期")
    private LocalDate scheduledDate;

    @Schema(description = "时间段 (如：09:00-10:00)")
    private String scheduledTime;

    @Schema(description = "星期几 (1-7)")
    private Integer weekDay;

    @Schema(description = "重复方式 (NONE/WEEKLY)")
    private String repeatType;

    @Schema(description = "重复截止日期")
    private LocalDate repeatEndDate;

    @Schema(description = "来源 (SCHOOL/TEACHER)")
    private String source;

    @Schema(description = "备注")
    private String note;

    @Schema(description = "是否已发送提醒")
    private Integer reminderSent;

    @Schema(description = "提醒发送时间")
    private LocalDateTime reminderSentAt;


    @Schema(description = "状态")
    private String status;

}
