import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:flutter_dotenv/flutter_dotenv.dart';

class AuditService {
  static String _envOrDefault(String key, String fallback) {
    if (!dotenv.isInitialized) {
      return fallback;
    }
    return dotenv.env[key] ?? fallback;
  }

  static String get _baseUrl => _envOrDefault('BACKEND_URL', 'https://sso.hmac.kr');

  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,
          'timestamp': DateTime.now().toIso8601String(),
        }),
      );

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