update invoice

This commit is contained in:
Phuoc Nguyen
2025-12-02 15:58:10 +07:00
parent 49a41d24eb
commit 359c31a4d4
15 changed files with 3398 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
/// Invoice Repository Implementation
///
/// Implements the invoice repository interface.
library;
import 'package:worker/features/invoices/data/datasources/invoice_remote_datasource.dart';
import 'package:worker/features/invoices/domain/entities/invoice.dart';
import 'package:worker/features/invoices/domain/repositories/invoice_repository.dart';
/// Invoice Repository Implementation
class InvoiceRepositoryImpl implements InvoiceRepository {
const InvoiceRepositoryImpl(this._remoteDataSource);
final InvoiceRemoteDataSource _remoteDataSource;
@override
Future<List<Invoice>> getInvoicesList({
int limitStart = 0,
int limitPageLength = 0,
}) async {
try {
final invoicesData = await _remoteDataSource.getInvoicesList(
limitStart: limitStart,
limitPageLength: limitPageLength,
);
// Convert Model → Entity
return invoicesData.map((model) => model.toEntity()).toList();
} catch (e) {
throw Exception('Failed to get invoices list: $e');
}
}
@override
Future<Invoice> getInvoiceDetail(String name) async {
try {
final invoiceData = await _remoteDataSource.getInvoiceDetail(name);
// Convert Model → Entity
return invoiceData.toEntity();
} catch (e) {
throw Exception('Failed to get invoice detail: $e');
}
}
}