from app.extensions import db
from datetime import datetime

class Course(db.Model):
    __tablename__ = 'courses'
    
    id = db.Column(db.Integer, primary_key=True)
    teacher_id = db.Column(db.Integer, db.ForeignKey('teachers.id'), nullable=False)
    
    # 课程信息
    title = db.Column(db.String(200), nullable=False)
    description = db.Column(db.Text)
    course_type = db.Column(db.Enum('online', 'offline', 'both'), nullable=False)
    level = db.Column(db.Enum('kids', 'teenager', 'adult', 'business'), nullable=False)
    category = db.Column(db.Enum('conversation', 'business', 'exam', 'kids', 'travel'))
    
    # 课程设置
    duration = db.Column(db.Integer, nullable=False, default=60)  # 课程时长（分钟）
    price = db.Column(db.Numeric(10, 2), nullable=False)
    max_students = db.Column(db.Integer, default=1)  # 最大学生数（1对1或小班）
    curriculum = db.Column(db.Text)  # 课程大纲
    
    # 媒体文件
    cover_image = db.Column(db.String(255))
    sample_video = db.Column(db.String(255))
    
    # 状态
    is_available = db.Column(db.Boolean, default=True)
    is_featured = db.Column(db.Boolean, default=False)
    total_enrollments = db.Column(db.Integer, default=0)
    
    # 时间戳
    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
    
    # 关系
    bookings = db.relationship('Booking', backref='course', lazy='dynamic')
    
    def __repr__(self):
        return f'<Course {self.title}>'