import 'dart:convert';
import 'package:flutter/foundation.dart';
import 'package:http/http.dart' as http;
import 'runtime_env.dart';

class AuditService {
  static String get _baseUrl => runtimeBackendUrl();

  static Future<void> logEvent({
    required String userId,
    required String eventType,
    required String status,
    String? details,
  }) async {
    final url = Uri.parse('$_baseUrl/api/v1/audit');

    try {
      final response = await http.post(
        url,
        headers: {'Content-Type': 'application/json'},
        body: jsonEncode({
          'user_id': userId,
          'event_type': eventType,
          'status': status,
          'details': details,
        }),
      );

      if (response.statusCode >= 200 && response.statusCode < 300) {
        debugPrint('Audit log sent successfully');
      } else {
        debugPrint(
          'Failed to send audit log: ${response.statusCode} ${response.body}',
        );
      }
    } catch (e) {
      debugPrint('Error sending audit log: $e');
    }
  }
}
