import uuid from repositories.pocketbase_client import pb_client from repositories.repo_config import USE_MOCK_REPOSITORIES COLLECTION = 'products_ngs_meta' class NgsMetaRepository: """Data access for the `products_ngs_meta` collection — NGS-only extraction fields (exclusive_access, group_leader, sustainability) keyed by product_id.""" def get_by_product_id(self, product_id): return pb_client.get_first(COLLECTION, f'product_id = "{product_id}"') def create(self, data): return pb_client.create(COLLECTION, data) def update(self, record_id, data): return pb_client.update(COLLECTION, record_id, data) class MockNgsMetaRepository: """In-memory stand-in for NgsMetaRepository.""" def __init__(self): self._records = {} def get_by_product_id(self, product_id): return next((r for r in self._records.values() if r.get('product_id') == product_id), None) def create(self, data): record_id = data.get('id') or str(uuid.uuid4()) record = {'id': record_id, **data} self._records[record_id] = record return record def update(self, record_id, data): if record_id not in self._records: return None self._records[record_id] = {**self._records[record_id], **data} return self._records[record_id] ngs_meta_repository = MockNgsMetaRepository() if USE_MOCK_REPOSITORIES else NgsMetaRepository()