From 979614e03aaf8750a006c66ca1db5f83bfe096ed Mon Sep 17 00:00:00 2001 From: OpenClaw Assistant Date: Sat, 21 Feb 2026 21:06:55 +0000 Subject: [PATCH] Reconfigure SQLite sync for new DB category names and deduplicate tariffs --- .../paradiz/scripts/sync_prices_to_sqlite.py | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/skills/paradiz/scripts/sync_prices_to_sqlite.py b/skills/paradiz/scripts/sync_prices_to_sqlite.py index 4056ea4..3447f1c 100644 --- a/skills/paradiz/scripts/sync_prices_to_sqlite.py +++ b/skills/paradiz/scripts/sync_prices_to_sqlite.py @@ -9,6 +9,15 @@ import sqlite3 CSV_PATH = Path('/home/openclaw/.openclaw/workspace/skills/paradiz/references/prices.csv') DB_PATH = Path('/home/openclaw/.openclaw/workspace/skills/paradiz/data/db/testDB.sqlite') +# Маппинг названий из прайса в фактические категории новой БД +ROOM_DB_MAP = { + 'Домик Эконом': 'Домик', + 'Стандарт': 'Стандарт', + 'Двухкомнатный номер': 'Двухкомнатный Номер', + 'Номер с кухней': 'Номер с кухней Стандарт', + 'Номер Большой с кухней': 'Номер с кухней №33', +} + def mk_hash(*parts: str) -> str: return hashlib.md5('|'.join(parts).encode('utf-8')).hexdigest() @@ -87,6 +96,7 @@ def main(): } synced = 0 + used_categories = set() for r in rows: room = (r.get('room') or '').strip() if not room or room == 'Доп. человек': @@ -101,12 +111,22 @@ def main(): base_included = 4 if room in ('Двухкомнатный номер', 'Номер Большой с кухней') else 2 maxl = room_max.get(room, gmax) - cat_id = ensure_category(cur, room, maxl) + + db_room = ROOM_DB_MAP.get(room, room) + cat_id = ensure_category(cur, db_room, maxl) + used_categories.add(db_room) + + # очищаем старые/дублирующиеся тарифы в том же диапазоне дат и вместимости + df = date_jd(cur, dfrom) + dt = date_jd(cur, dto) + cur.execute('''DELETE FROM hotel_room_categories_cost + WHERE category=? AND date_from=? AND date_to=? AND number BETWEEN ? AND ?''', + (cat_id, df, dt, gmin, gmax)) for n in range(gmin, gmax + 1): extra_guests = max(0, n - base_included) cost = base + extra_guests * extra - upsert_cost(cur, cat_id, room, n, cost, dfrom, dto) + upsert_cost(cur, cat_id, db_room, n, cost, dfrom, dto) synced += 1 conn.commit() @@ -114,6 +134,7 @@ def main(): print(f'backup: {backup_path}') print(f'synced cost rows: {synced}') + print('mapped categories:', ', '.join(sorted(used_categories))) if __name__ == '__main__':