zov-tech/backend-py/seed_test_clients.py

100 lines
3.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Заводим тестовых клиентов с замерами в разных статусах
для проверки кабинета менеджера. Запускать раз — потом руками
почистить строки в Google Sheets если не нужно.
"""
from datetime import datetime, timedelta, timezone
from app import sheets
from app.main import _short_id, _row_for_measurement, _ensure_measurements_sheet
MGR_TG_ID = 5937498515 # Руслан (он же замерщик)
def iso(dt):
return dt.astimezone(timezone.utc).isoformat()
def now_iso():
return datetime.now(timezone.utc).isoformat()
def main():
_ensure_measurements_sheet()
now = datetime.now().astimezone()
today_15 = now.replace(hour=15, minute=0, second=0, microsecond=0)
yesterday_11 = (now - timedelta(days=1)).replace(hour=11, minute=0, second=0, microsecond=0)
tomorrow_11 = (now + timedelta(days=1)).replace(hour=11, minute=0, second=0, microsecond=0)
cases = [
# 1. Сегодня в 15:00 — HERO на главной
{
"client_name": "Иванова Анна Сергеевна",
"client_phone": "+7 921 555-12-34",
"address": "СПб, Просвещения 87, кв. 12",
"status": "scheduled",
"scheduled_at": iso(today_15),
"preferred_note": "после звонка обязательно",
"zamer_no": "9001",
},
# 2. Просрочка — вчера 11:00, не выполнено
{
"client_name": "Петров Игорь Васильевич",
"client_phone": "+7 905 111-22-33",
"address": "СПб, Невский пр 100, кв. 5",
"status": "scheduled",
"scheduled_at": iso(yesterday_11),
"preferred_note": "",
"zamer_no": "9002",
},
# 3. Заявка без даты — нужно созвониться
{
"client_name": "Сидорова Елена Михайловна",
"client_phone": "+7 812 444-55-66",
"address": "СПб, Литейный пр 50, кв. 28",
"status": "requested",
"scheduled_at": "",
"preferred_note": "эта неделя, удобно вечером",
"zamer_no": "9003",
},
# 4. Завтра — план на завтра
{
"client_name": "Кузнецов Александр Петрович",
"client_phone": "+7 911 777-88-99",
"address": "СПб, Просвещения 30, кв. 41",
"status": "scheduled",
"scheduled_at": iso(tomorrow_11),
"preferred_note": "узкий проезд от шоссе, лучше с утра",
"zamer_no": "9004",
},
]
created = []
for c in cases:
mid = _short_id()
sheets.append_named_row("Measurements", _row_for_measurement(
mid, now_iso(),
manager_tg_id=str(MGR_TG_ID),
assigned_to_tg_id=str(MGR_TG_ID), # назначен на себя
requested_by_tg_id=str(MGR_TG_ID),
filled_by="request",
status=c["status"],
scheduled_at=c["scheduled_at"],
address=c["address"],
client_name=c["client_name"],
client_phone=c["client_phone"],
preferred_note=c["preferred_note"],
preferred_type="tbd",
zamer_no=c["zamer_no"],
notes="[TEST] seed data — можно удалить из Sheets",
))
created.append(f"{mid[:8]} · {c['status']:9} · {c['client_name']}")
print("Создано:")
for c in created:
print("", c)
if __name__ == "__main__":
main()