import 'package:pshared/api/responses/invitations.dart'; import 'package:pshared/data/mapper/invitation/invitation.dart'; import 'package:pshared/models/invitation/invitation.dart'; import 'package:pshared/service/services.dart'; import 'package:pshared/service/template.dart'; class InvitationService { static const String _objectType = Services.invitations; static final BasicService _basicService = BasicService( objectType: _objectType, fromJson: (json) => InvitationsResponse.fromJson(json).invitations.map((dto) => dto.toDomain()).toList(), ); static BasicService get basicService => _basicService; static Future> list(String organizationRef, String parentRef) { return _basicService.list(organizationRef, parentRef); } static Future> create(String organizationRef, Invitation invitation) { return _basicService.create(organizationRef, invitation.toDTO().toJson()); } static Future> update(Invitation invitation) { return _basicService.update(invitation.toDTO().toJson()); } static Future> delete(Invitation invitation) { return _basicService.delete(invitation.id); } static Future> archive({ required String organizationRef, required Invitation invitation, required bool archived, }) { return _basicService.archive( organizationRef: organizationRef, objectRef: invitation.id, newIsArchived: archived, ); } }