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

import cn.novalon.gym.manage.sys.core.domain.BaseDomain;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDateTime;

public class GroupCourse extends BaseDomain{

    //课程名称
    @Schema(description = "团课名", example = "Push-up")
    private String courseName;

    //教练id
    @Schema(description = "教练id", example = "1")
    private Long coachId;

    //课程类型
    @Schema(description = "课程类型", example = "1")
    private Long courseType;

    //开始时间
    @Schema(description = "开始时间", example = "2026-01-01")
    private LocalDateTime startTime;

    //结束时间
    @Schema(description = "结束时间", example = "2026-01-02")
    private LocalDateTime endTime;

    //最大参与人数
    @Schema(description = "最大参与人数", example = "20")
    private Integer maxMembers;

    //当前参与人数
    @Schema(description = "当前参与人数", example = "2")
    private Integer currentMembers;

    //课程状态：0-正常，1-已取消，2-已结束
    @Schema(description = "课程状态", example = "0")
    private Long status;

    //上课地点
    @Schema(description = "上课地点", example = "龙泉驿区幸福路")
    private String location;

    //封面图URL
    @Schema(description = "封面图URL", example = "https://12345.com")
    private String coverImage;

    //课程描述
    @Schema(description = "课程描述", example = "从入门到入土")
    private String description;

    //点卡额度（消耗次数）
    @Schema(description = "点卡额度（消耗次数）", example = "1")
    private Integer pointCardAmount;

    //储值卡额度（消耗金额）
    @Schema(description = "储值卡额度（消耗金额）", example = "50.00")
    private java.math.BigDecimal storedValueAmount;

    //二维码路径
    @Schema(description = "二维码路径", example = "D:\\Games\\exmp\\image\\abc123_20260618120000.png")
    private String qrCodePath;

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public Long getCoachId() {
        return coachId;
    }

    public void setCoachId(Long coachId) {
        this.coachId = coachId;
    }

    public Long getCourseType() {
        return courseType;
    }

    public void setCourseType(Long courseType) {
        this.courseType = courseType;
    }

    public LocalDateTime getStartTime() {
        return startTime;
    }

    public void setStartTime(LocalDateTime startTime) {
        this.startTime = startTime;
    }

    public LocalDateTime getEndTime() {
        return endTime;
    }

    public void setEndTime(LocalDateTime endTime) {
        this.endTime = endTime;
    }

    public Integer getMaxMembers() {
        return maxMembers;
    }

    public void setMaxMembers(Integer maxMembers) {
        this.maxMembers = maxMembers;
    }

    public Integer getCurrentMembers() {
        return currentMembers;
    }

    public void setCurrentMembers(Integer currentMembers) {
        this.currentMembers = currentMembers;
    }

    public Long getStatus() {
        return status;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getCoverImage() {
        return coverImage;
    }

    public void setCoverImage(String coverImage) {
        this.coverImage = coverImage;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getPointCardAmount() {
        return pointCardAmount;
    }

    public void setPointCardAmount(Integer pointCardAmount) {
        this.pointCardAmount = pointCardAmount;
    }

    public java.math.BigDecimal getStoredValueAmount() {
        return storedValueAmount;
    }

    public void setStoredValueAmount(java.math.BigDecimal storedValueAmount) {
        this.storedValueAmount = storedValueAmount;
    }

    public String getQrCodePath() {
        return qrCodePath;
    }

    public void setQrCodePath(String qrCodePath) {
        this.qrCodePath = qrCodePath;
    }
}
