Files
sendico/frontend/pshared/lib/provider/recipient/provider.dart
2026-01-29 19:22:30 +03:00

42 lines
1.4 KiB
Dart

import 'package:pshared/data/mapper/recipient/recipient.dart';
import 'package:pshared/models/recipient/recipient.dart';
import 'package:pshared/models/recipient/status.dart';
import 'package:pshared/models/recipient/type.dart';
import 'package:pshared/provider/organizations.dart';
import 'package:pshared/provider/template.dart';
import 'package:pshared/service/recipient/service.dart';
class RecipientsProvider extends GenericProvider<Recipient> {
late OrganizationsProvider _organizations;
String? _organizationRef;
List<Recipient> get recipients => List<Recipient>.unmodifiable(items.toList()..sort((a, b) => a.storable.createdAt.compareTo(b.storable.createdAt)));
RecipientsProvider() : super(service: RecipientService.basicService);
Future<Recipient> create({
required String name,
required String email,
}) async => createObject(
_organizations.current.id,
newRecipient(
organizationRef: _organizations.current.id,
email: email,
name: name,
status: RecipientStatus.ready,
type: RecipientType.internal,
).toDTO().toJson(),
);
void updateProviders(OrganizationsProvider organizations) {
_organizations = organizations;
if (!_organizations.isOrganizationSet) return;
final organizationRef = _organizations.current.id;
if (_organizationRef == organizationRef) return;
_organizationRef = organizationRef;
load(organizationRef, organizationRef);
}
}