from app.extensions import db
from datetime import datetime

class Announcement(db.Model):
    __tablename__ = 'announcements'
    
    id = db.Column(db.Integer, primary_key=True)
    
    # 公告内容
    title = db.Column(db.String(200), nullable=False)
    content = db.Column(db.Text, nullable=False)
    announcement_type = db.Column(db.Enum('system', 'promotion', 'maintenance', 'news'))
    
    # 目标受众
    target_audience = db.Column(db.Enum('all', 'students', 'teachers', 'specific'))
    specific_users = db.Column(db.Text)  # 特定用户ID，JSON格式
    
    # 状态
    is_published = db.Column(db.Boolean, default=False)
    is_pinned = db.Column(db.Boolean, default=False)
    
    # 时间控制
    publish_at = db.Column(db.DateTime, default=datetime.utcnow)
    expire_at = db.Column(db.DateTime)
    
    # 时间戳
    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
    
    def __repr__(self):
        return f'<Announcement {self.title}>'