import '../core/api_client.dart'; class InvoiceService { final ApiClient _api; InvoiceService({ApiClient? apiClient}) : _api = apiClient ?? ApiClient(); Future> createInvoice({ required int businessId, required Map payload, }) async { final res = await _api.post>( '/api/v1/invoices/business/$businessId', data: payload, ); return Map.from(res.data?['data'] ?? const {}); } Future> updateInvoice({ required int businessId, required int invoiceId, required Map payload, }) async { final res = await _api.put>( '/api/v1/invoices/business/$businessId/$invoiceId', data: payload, ); return Map.from(res.data?['data'] ?? const {}); } Future> getInvoice({ required int businessId, required int invoiceId, }) async { final res = await _api.get>( '/api/v1/invoices/business/$businessId/$invoiceId', ); return Map.from(res.data?['data'] ?? const {}); } Future> searchInvoices({ required int businessId, int page = 1, int limit = 20, String? search, Map? filters, }) async { final body = { 'take': limit, 'skip': (page - 1) * limit, if (search != null && search.isNotEmpty) 'search': search, if (filters != null) 'filters': filters, }; final res = await _api.post>( '/api/v1/invoices/business/$businessId/search', data: body, ); return Map.from(res.data?['data'] ?? const {}); } }