121 lines
3.0 KiB
Dart
121 lines
3.0 KiB
Dart
import 'package:dartz/dartz.dart';
|
|
import 'package:equatable/equatable.dart';
|
|
import '../entities/dashboard_entity.dart';
|
|
import '../repositories/dashboard_repository.dart';
|
|
import '../../../../core/error/failures.dart';
|
|
import '../../../../core/usecases/usecase.dart';
|
|
|
|
class GetDashboardData implements UseCase<DashboardEntity, GetDashboardDataParams> {
|
|
final DashboardRepository repository;
|
|
|
|
GetDashboardData(this.repository);
|
|
|
|
@override
|
|
Future<Either<Failure, DashboardEntity>> call(GetDashboardDataParams params) async {
|
|
return await repository.getDashboardData(
|
|
params.organizationId,
|
|
params.userId,
|
|
);
|
|
}
|
|
}
|
|
|
|
class GetDashboardDataParams extends Equatable {
|
|
final String organizationId;
|
|
final String userId;
|
|
|
|
const GetDashboardDataParams({
|
|
required this.organizationId,
|
|
required this.userId,
|
|
});
|
|
|
|
@override
|
|
List<Object> get props => [organizationId, userId];
|
|
}
|
|
|
|
class GetDashboardStats implements UseCase<DashboardStatsEntity, GetDashboardStatsParams> {
|
|
final DashboardRepository repository;
|
|
|
|
GetDashboardStats(this.repository);
|
|
|
|
@override
|
|
Future<Either<Failure, DashboardStatsEntity>> call(GetDashboardStatsParams params) async {
|
|
return await repository.getDashboardStats(
|
|
params.organizationId,
|
|
params.userId,
|
|
);
|
|
}
|
|
}
|
|
|
|
class GetDashboardStatsParams extends Equatable {
|
|
final String organizationId;
|
|
final String userId;
|
|
|
|
const GetDashboardStatsParams({
|
|
required this.organizationId,
|
|
required this.userId,
|
|
});
|
|
|
|
@override
|
|
List<Object> get props => [organizationId, userId];
|
|
}
|
|
|
|
class GetRecentActivities implements UseCase<List<RecentActivityEntity>, GetRecentActivitiesParams> {
|
|
final DashboardRepository repository;
|
|
|
|
GetRecentActivities(this.repository);
|
|
|
|
@override
|
|
Future<Either<Failure, List<RecentActivityEntity>>> call(GetRecentActivitiesParams params) async {
|
|
return await repository.getRecentActivities(
|
|
params.organizationId,
|
|
params.userId,
|
|
limit: params.limit,
|
|
);
|
|
}
|
|
}
|
|
|
|
class GetRecentActivitiesParams extends Equatable {
|
|
final String organizationId;
|
|
final String userId;
|
|
final int limit;
|
|
|
|
const GetRecentActivitiesParams({
|
|
required this.organizationId,
|
|
required this.userId,
|
|
this.limit = 10,
|
|
});
|
|
|
|
@override
|
|
List<Object> get props => [organizationId, userId, limit];
|
|
}
|
|
|
|
class GetUpcomingEvents implements UseCase<List<UpcomingEventEntity>, GetUpcomingEventsParams> {
|
|
final DashboardRepository repository;
|
|
|
|
GetUpcomingEvents(this.repository);
|
|
|
|
@override
|
|
Future<Either<Failure, List<UpcomingEventEntity>>> call(GetUpcomingEventsParams params) async {
|
|
return await repository.getUpcomingEvents(
|
|
params.organizationId,
|
|
params.userId,
|
|
limit: params.limit,
|
|
);
|
|
}
|
|
}
|
|
|
|
class GetUpcomingEventsParams extends Equatable {
|
|
final String organizationId;
|
|
final String userId;
|
|
final int limit;
|
|
|
|
const GetUpcomingEventsParams({
|
|
required this.organizationId,
|
|
required this.userId,
|
|
this.limit = 5,
|
|
});
|
|
|
|
@override
|
|
List<Object> get props => [organizationId, userId, limit];
|
|
}
|