Admin Panel: - User Detail Modal with full profile info - Bulk tier upgrade for multiple users - User export to CSV - Price Alerts overview tab - Domain Health Check trigger - Email Test functionality - Scheduler Status with job info and last runs - Activity Log for admin actions - Blog management tab with CRUD Blog System: - BlogPost model with full content management - Public API: list, featured, categories, single post - Admin API: create, update, delete, publish/unpublish - Frontend blog listing page with categories - Frontend blog detail page with styling - View count tracking OAuth: - Google OAuth integration - GitHub OAuth integration - OAuth callback handling - Provider selection on login/register Other improvements: - Domain checker with check_all_domains function - Admin activity logging - Breadcrumbs component - Toast notification component - Various UI/UX improvements
26 lines
829 B
Python
26 lines
829 B
Python
"""
|
|
Admin Activity Log Model.
|
|
|
|
Tracks admin actions for audit purposes.
|
|
"""
|
|
from datetime import datetime
|
|
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Text
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from app.database import Base
|
|
|
|
|
|
class AdminActivityLog(Base):
|
|
"""Model for tracking admin activities."""
|
|
__tablename__ = "admin_activity_logs"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
admin_id = Column(Integer, ForeignKey("users.id"), nullable=False)
|
|
action = Column(String(100), nullable=False) # e.g., "bulk_upgrade", "user_delete", "tld_scrape"
|
|
details = Column(Text, nullable=True) # Additional info about the action
|
|
created_at = Column(DateTime, default=datetime.utcnow)
|
|
|
|
# Relationship
|
|
admin = relationship("User", backref="admin_activities")
|
|
|