import json,pathlib
root=pathlib.Path(__file__).parent
names=['Берёза','Кедр','Липа','Осина','Сосна','Ива','Ольха','Рябина','Клён','Тополь']
topics=[('резервные копии','Резервные копии проекта {n} хранятся в архиве на сервере Север.', 'резервные копии {n}', 'резервная копия {n}', 'где лежат дубликаты данных {n}'),('оплата','Оплата проекта {n} производится после подписания акта.', 'оплата {n}','оплатить {n}','когда переводят деньги {n}'),('отчёты','Отчёты проекта {n} готовятся по пятницам.', 'отчёты {n}','отчет {n}','в какой день присылают сводку {n}'),('доступ','Доступ к проекту {n} выдаётся на восемь часов.', 'доступ {n}','доступа {n}','сколько действует разрешение {n}'),('документы','Документы проекта {n} проверяет координатор Марта.', 'документы {n}','документ {n}','кто просматривает бумаги {n}'),('заявки','Заявки проекта {n} принимаются через форму на сайте.', 'заявки {n}','заявка {n}','как отправить обращение {n}'),('доставка','Доставка проекта {n} выполняется в течение двух дней.', 'доставка {n}','доставки {n}','когда привезут посылку {n}'),('поддержка','Поддержка проекта {n} отвечает по будням с девяти часов.', 'поддержка {n}','поддержку {n}','когда помогут с проблемой {n}')]
docs=[];queries=[]
for ni,n in enumerate(names):
 for ti,(topic,text,*qs) in enumerate(topics):
  id=f'd{ni:02d}-{ti}'
  docs.append({'id':id,'text':text.format(n=n),'tags':[]})
  for category,q in zip(['exact','inflection','paraphrase'],qs):queries.append({'id':id+'-'+category,'category':category,'query':q.format(n=n),'relevant':[id]})
  docs.append({'id':id+'-distractor','text':f'Обсуждение {topic} для проекта {n} перенесено. Дополнительные подробности пока не записаны.','tags':[]})
for ni,n in enumerate(names):
 for j,q in enumerate(['пароль администратора {n}','номер счета {n}']):queries.append({'id':f'noanswer-{ni}-{j}','category':'unanswerable','query':q.format(n=n),'relevant':[]})
# Original fixtures use fictional project names, no personal/customer data.
(root/'rag-fixtures.json').write_text(json.dumps({'description':'author-created diagnostic fixtures; not representative user distribution','documents':docs,'queries':queries},ensure_ascii=False,indent=2))
print(len(docs),'documents',len(queries),'queries')
