import 'package:http/http.dart' as http; import 'dart:convert'; import 'package:marco/model/user_permission.dart'; import 'package:marco/model/employee_info.dart'; class PermissionService { static Future> fetchPermissions(String token) async { try { final response = await http.get( Uri.parse('https://stageapi.marcoaiot.com/api/user/profile'), headers: {'Authorization': 'Bearer $token'}, ); if (response.statusCode == 200) { final decoded = json.decode(response.body); final List featurePermissions = decoded['data']['featurePermissions']; return featurePermissions .map((permissionId) => UserPermission.fromJson({'id': permissionId})) .toList(); } else { final errorData = json.decode(response.body); throw Exception('Failed to load permissions: ${errorData['message']}'); } } catch (e) { print('Error fetching permissions: $e'); throw Exception('Error fetching permissions: $e'); } } // New method to fetch employee info static Future fetchEmployeeInfo(String token) async { try { final response = await http.get( Uri.parse('https://stageapi.marcoaiot.com/api/user/profile'), headers: {'Authorization': 'Bearer $token'}, ); if (response.statusCode == 200) { final decoded = json.decode(response.body); final employeeData = decoded['data']['employeeInfo']; return EmployeeInfo.fromJson(employeeData); } else { final errorData = json.decode(response.body); throw Exception('Failed to load employee info: ${errorData['message']}'); } } catch (e) { print('Error fetching employee info: $e'); throw Exception('Error fetching employee info: $e'); } } }