pounce/backend/app/models/admin_log.py
yves.gugger cff0ba0984 feat: Add Admin Panel enhancements, Blog system, and OAuth
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
2025-12-09 16:52:54 +01:00

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")