import 'package:dio/dio.dart'; import '../../models/invite.dart'; class AdminInvitesApi { AdminInvitesApi(this._dio); final Dio _dio; /// GET /api/admin/invites → `{"invites": [...]}`. Envelope unwrapped. Future> list() async { final r = await _dio.get>('/api/admin/invites'); final raw = (r.data?['invites'] as List?) ?? const []; return raw .map((e) => Invite.fromJson((e as Map).cast())) .toList(growable: false); } /// POST /api/admin/invites — body is optional `{"note": "..."}`. /// Server hardcodes the 24h TTL; admins cannot configure expiry. /// Returns the bare invite (not enveloped). Future create({String? note}) async { final r = await _dio.post>( '/api/admin/invites', data: {if (note != null && note.isNotEmpty) 'note': note}, ); return Invite.fromJson(r.data ?? const {}); } Future revoke(String token) async { await _dio.delete('/api/admin/invites/$token'); } }