import 'dart:io'; import 'package:dio/dio.dart'; import '../../core/network/api_client.dart'; import '../dto/attendance_response_dto.dart'; abstract class AttendanceRemoteDataSource { Future login({ required String employeeId, required File faceImage, }); Future logout({ required String employeeId, required File faceImage, }); } class AttendanceRemoteDataSourceImpl implements AttendanceRemoteDataSource { final ApiClient apiClient; AttendanceRemoteDataSourceImpl({required this.apiClient}); @override Future login({ required String employeeId, required File faceImage, }) async { final formData = FormData.fromMap({ 'EmployeeId': employeeId, 'FaceImage': await MultipartFile.fromFile(faceImage.path), }); final response = await apiClient.post( '/Attendance/login', data: formData, options: Options(contentType: 'multipart/form-data'), ); return AttendanceResponseDto.fromJson(response.data); } @override Future logout({ required String employeeId, required File faceImage, }) async { final formData = FormData.fromMap({ 'EmployeeId': employeeId, 'FaceImage': await MultipartFile.fromFile(faceImage.path), }); final response = await apiClient.post( '/Attendance/logout', data: formData, options: Options(contentType: 'multipart/form-data'), ); return AttendanceResponseDto.fromJson(response.data); } }