import 'package:pocketbase/pocketbase.dart'; import '../../../core/api/pocketbase_client.dart'; import '../../../models/connection.dart'; class ClinicConnectionsRepository { ClinicConnectionsRepository._(); static final instance = ClinicConnectionsRepository._(); PocketBase get _pb => PocketBaseClient.instance.pb; Future> listConnections(String clinicTenantId) async { final result = await _pb.collection('connections').getList( filter: 'clinic_tenant_id = "$clinicTenantId"', expand: 'lab_tenant_id,clinic_tenant_id', perPage: 100, ); return (result.items.map((r) => Connection.fromJson(r.toJson())).toList() ..sort((a, b) => (b.dateCreated ?? '').compareTo(a.dateCreated ?? ''))); } Future requestConnection({ required String clinicTenantId, required String labTenantId, }) async { final record = await _pb.collection('connections').create(body: { 'clinic_tenant_id': clinicTenantId, 'lab_tenant_id': labTenantId, 'status': 'pending', }); return Connection.fromJson(record.toJson()); } Future>> searchLabs(String query) async { final result = await _pb.collection('tenants').getList( filter: 'kind = "lab" && company_name ~ "$query"', perPage: 20, ); return result.items.map((r) => r.toJson()).toList(); } }