diff --git a/deploy/db/spec_events.py b/deploy/db/spec_events.py index e23081e..e99d052 100644 --- a/deploy/db/spec_events.py +++ b/deploy/db/spec_events.py @@ -45,7 +45,7 @@ def apply_ops(contract_id, supplement_id, document_id, ops, prompt_id, raw_llm_r if action == "ADD": nr = op.get("new_row", {}) name = nr.get("name", "") - name_hash = _hash(name) + name_hash = _hash(name, nr.get("date_start")) execute( """INSERT INTO spec_events (contract_id, supplement_id, seq, action, target_hash, new_values, comment, status, prompt_version, source_document_id, raw_llm_response) @@ -116,9 +116,13 @@ def apply_ops(contract_id, supplement_id, document_id, ops, prompt_id, raw_llm_r return {"added": added, "updated": updated, "deleted": deleted} -def _hash(name): +def _hash(name, date_start=None): + """Нормализованный хеш услуги. Включает date_start чтобы различать периоды.""" import hashlib - return hashlib.sha256(name.strip().lower().encode()).hexdigest()[:16] + key = name.strip().lower() + if date_start: + key += "|" + str(date_start) + return hashlib.sha256(key.encode()).hexdigest()[:16] def _upsert_spec_current(contract_id, name_hash, row):