forked from eatvio/eatvio_app
81 lines
2.1 KiB
Dart
81 lines
2.1 KiB
Dart
enum ConsultationStatus {
|
|
Completed,
|
|
Canceled,
|
|
CanceledByInitiator,
|
|
}
|
|
|
|
class ConsultantFinanceEntity {
|
|
final int totalConsultationsCount;
|
|
final int completedCount;
|
|
final int canceledCount;
|
|
final int canceledByInitiatorCount;
|
|
final List<ConsultationFinanceCardEntity> consultationsList;
|
|
|
|
ConsultantFinanceEntity({
|
|
required this.totalConsultationsCount,
|
|
required this.completedCount,
|
|
required this.canceledCount,
|
|
required this.canceledByInitiatorCount,
|
|
required this.consultationsList,
|
|
});
|
|
}
|
|
|
|
class ConsultationFinanceCardEntity {
|
|
final String id;
|
|
final DateTime date;
|
|
final String title;
|
|
final String clientName;
|
|
final int planDuration;
|
|
final int price;
|
|
final ConsultationStatus status;
|
|
|
|
ConsultationFinanceCardEntity({
|
|
required this.id,
|
|
required this.date,
|
|
required this.title,
|
|
required this.clientName,
|
|
required this.planDuration,
|
|
required this.price,
|
|
required this.status,
|
|
});
|
|
}
|
|
|
|
// Test data
|
|
final testConsultations = [
|
|
ConsultationFinanceCardEntity(
|
|
id: '1',
|
|
date: DateTime.now(),
|
|
title: 'Consultation A',
|
|
clientName: 'Alice',
|
|
planDuration: 30,
|
|
price: 100,
|
|
status: ConsultationStatus.Completed,
|
|
),
|
|
ConsultationFinanceCardEntity(
|
|
id: '2',
|
|
date: DateTime.now().subtract(Duration(days: 1)),
|
|
title: 'Consultation B',
|
|
clientName: 'Bob',
|
|
planDuration: 45,
|
|
price: 150,
|
|
status: ConsultationStatus.Canceled,
|
|
),
|
|
ConsultationFinanceCardEntity(
|
|
id: '3',
|
|
date: DateTime.now().subtract(Duration(days: 2)),
|
|
title: 'Consultation C',
|
|
clientName: 'Charlie',
|
|
planDuration: 60,
|
|
price: 200,
|
|
status: ConsultationStatus.CanceledByInitiator,
|
|
),
|
|
];
|
|
|
|
final testFinanceEntity = ConsultantFinanceEntity(
|
|
totalConsultationsCount: testConsultations.length,
|
|
completedCount: testConsultations.where((c) => c.status == ConsultationStatus.Completed).length,
|
|
canceledCount: testConsultations.where((c) => c.status == ConsultationStatus.Canceled).length,
|
|
canceledByInitiatorCount: testConsultations.where((c) => c.status == ConsultationStatus.CanceledByInitiator).length,
|
|
consultationsList: testConsultations,
|
|
);
|