from extensions import db
from datetime import datetime
from sqlalchemy import event

class Student(db.Model):
    __tablename__ = 'students'
    
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    
    # 基本信息
    full_name = db.Column(db.String(100), nullable=False)
    #age = db.Column(db.Integer)
    english_level = db.Column(db.Enum('beginner', 'intermediate', 'advanced'))
    learning_goals = db.Column(db.Text)
    
    # 联系信息
    phone = db.Column(db.String(20))
    wechat = db.Column(db.String(50))
    
    # 学习偏好
    preferred_teaching_style = db.Column(db.String(200))
    interests = db.Column(db.String(500))
    
    # 账户信息
    balance = db.Column(db.Numeric(10, 2), default=0.0)
    total_classes = 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

    def __repr__(self):
        return f'<Student {self.full_name}>'

# 使用事件监听器自动更新 updated_at
@event.listens_for(Student, 'before_update')
def receive_before_update(mapper, connection, target):
    target.updated_at = datetime.utcnow()