package cn.novalon.gym.manage.groupcourse.event;

import org.springframework.context.ApplicationEvent;

/**
 * 预约提醒事件
 * 
 * @author 张翔
 * @date 2026-06-01
 */
public class BookingReminderEvent extends ApplicationEvent {

    /**
     * 消息类型枚举
     */
    public enum ReminderType {
        BOOKING_SUCCESS,  // 预约成功
        COURSE_REMINDER,  // 课程即将开始提醒
        BOOKING_CANCEL    // 预约取消
    }

    private final Long bookingId;
    private final Long memberId;
    private final String courseName;
    private final String courseTime;
    private final ReminderType type;

    public BookingReminderEvent(Object source, Long bookingId, Long memberId, 
                                String courseName, String courseTime, ReminderType type) {
        super(source);
        this.bookingId = bookingId;
        this.memberId = memberId;
        this.courseName = courseName;
        this.courseTime = courseTime;
        this.type = type;
    }

    public Long getBookingId() {
        return bookingId;
    }

    public Long getMemberId() {
        return memberId;
    }

    public String getCourseName() {
        return courseName;
    }

    public String getCourseTime() {
        return courseTime;
    }

    public ReminderType getType() {
        return type;
    }
}