import { Request } from 'express';
import ActivityLog from '../Features/activity-logs/schema/activity-log.schema';

export async function logActivity(
  req: Request,
  action: string,
  resource = '',
  resourceId: string | null = null,
  details = ''
) {
  try {
    const user = req['staffUser'] || req['currentUser'];
    await ActivityLog.create({
      userId: user?.id || user?._id?.toString() || null,
      userEmail: user?.email || '',
      userName: user?.firstname ? `${user.firstname} ${user.lastname || ''}`.trim() : '',
      role: user?.role || '',
      action,
      resource,
      resourceId,
      details,
      ip: String(req.headers['x-forwarded-for'] || req.socket?.remoteAddress || ''),
    });
  } catch {
    // non-blocking
  }
}
