from app.extensions import db
from datetime import datetime

class Payment(db.Model):
    __tablename__ = 'payments'
    
    id = db.Column(db.Integer, primary_key=True)
    student_id = db.Column(db.Integer, db.ForeignKey('students.id'), nullable=False)
    booking_id = db.Column(db.Integer, db.ForeignKey('bookings.id'))
    
    # 支付信息
    amount = db.Column(db.Numeric(10, 2), nullable=False)
    payment_type = db.Column(db.Enum('course_booking', 'balance_topup', 'refund'), nullable=False)
    payment_method = db.Column(db.Enum('alipay', 'wechat', 'bank_transfer', 'balance'), nullable=False)
    
    # 状态
    status = db.Column(db.Enum('pending', 'completed', 'failed', 'refunded'), default='pending')
    
    # 交易信息
    transaction_id = db.Column(db.String(100))  # 第三方支付交易ID
    gateway_response = db.Column(db.Text)  # 支付网关响应
    
    # 时间戳
    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    completed_at = db.Column(db.DateTime)
    
    def __repr__(self):
        return f'<Payment {self.id} - {self.amount}>'