from datetime import datetime from app.extensions import db class AppAccess(db.Model): """Controls which portal users have access to which sub-applications.""" __tablename__ = 'app_access' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('portal_users.id'), nullable=False) app_name = db.Column(db.String(50), nullable=False) # 'digiserver' | 'networkview' | 'itassets' is_active = db.Column(db.Boolean, default=True) # Per-app role override: 'admin' | 'user' | None (None = inherit the portal-level role) app_role = db.Column(db.String(20), nullable=True) granted_at = db.Column(db.DateTime, default=datetime.utcnow) __table_args__ = (db.UniqueConstraint('user_id', 'app_name', name='uq_user_app'),) def __repr__(self): return f''