2021-08-29 11:50:24 +02:00
|
|
|
part of 'services_cubit.dart';
|
|
|
|
|
2022-05-17 16:31:34 +03:00
|
|
|
class ServicesState extends ServerInstallationDependendState {
|
2021-08-29 15:54:28 +02:00
|
|
|
const ServicesState({
|
2022-08-30 00:35:06 +04:00
|
|
|
required this.services,
|
2022-09-19 03:21:08 +03:00
|
|
|
required this.lockedServices,
|
2021-08-29 15:54:28 +02:00
|
|
|
});
|
|
|
|
|
2022-09-19 03:21:08 +03:00
|
|
|
const ServicesState.empty()
|
|
|
|
: this(services: const [], lockedServices: const []);
|
2021-08-29 15:54:28 +02:00
|
|
|
|
2022-08-30 00:35:06 +04:00
|
|
|
final List<Service> services;
|
2022-09-19 03:21:08 +03:00
|
|
|
final List<String> lockedServices;
|
|
|
|
|
2023-06-29 13:52:25 +03:00
|
|
|
List<Service> get servicesThatCanBeBackedUp => services
|
|
|
|
.where(
|
2023-06-29 13:51:38 +03:00
|
|
|
(final service) => service.canBeBackedUp,
|
2023-06-29 13:52:25 +03:00
|
|
|
)
|
|
|
|
.toList();
|
2023-06-29 13:51:38 +03:00
|
|
|
|
2022-09-19 03:21:08 +03:00
|
|
|
bool isServiceLocked(final String serviceId) =>
|
|
|
|
lockedServices.contains(serviceId);
|
|
|
|
|
2022-08-30 00:35:06 +04:00
|
|
|
Service? getServiceById(final String id) {
|
2022-09-05 14:51:01 +04:00
|
|
|
final service = services.firstWhere(
|
|
|
|
(final service) => service.id == id,
|
|
|
|
orElse: () => Service.empty,
|
|
|
|
);
|
2022-08-30 00:35:06 +04:00
|
|
|
if (service.id == 'empty') {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
return service;
|
|
|
|
}
|
2021-08-29 11:50:24 +02:00
|
|
|
|
|
|
|
@override
|
2021-08-29 15:54:28 +02:00
|
|
|
List<Object> get props => [
|
2022-08-30 00:35:06 +04:00
|
|
|
services,
|
2022-09-19 03:21:08 +03:00
|
|
|
lockedServices,
|
2021-08-29 15:54:28 +02:00
|
|
|
];
|
2021-08-29 17:02:51 +02:00
|
|
|
|
2022-09-19 03:21:08 +03:00
|
|
|
ServicesState copyWith({
|
|
|
|
final List<Service>? services,
|
|
|
|
final List<String>? lockedServices,
|
|
|
|
}) =>
|
|
|
|
ServicesState(
|
|
|
|
services: services ?? this.services,
|
|
|
|
lockedServices: lockedServices ?? this.lockedServices,
|
|
|
|
);
|
2021-08-29 11:50:24 +02:00
|
|
|
}
|