ƟlQ? R d dl T d dlmZ G d de Z G d de ZdS ) )*) JSONFieldc e Zd Z e ed g Z e Z e Z e Z e ZdS ) BaseChangeLogzDEFAULT CURRENT_TIMESTAMP)constraintsN) __name__ __module____qualname__ DateTimeFieldSQL timestamp TextFieldactiontableIntegerFieldprimary_keyr changes z/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib/python3.11/site-packages/playhouse/sqlite_changelog.pyr r sZ 33/J+K+K*LMMMI Y[[FIKKE,..KikkGGGr r c ^ e Zd ZeZdZdZdZd dZddZ ddZ d Zed Z ddZdS ) ChangeLoga CREATE TRIGGER IF NOT EXISTS %(table)s_changes_%(action)s AFTER %(action)s ON %(table)s BEGIN INSERT INTO %(change_table)s ("action", "table", "primary_key", "changes") SELECT '%(action)s', '%(table)s', %(new_old)s."%(primary_key)s", "changes" FROM ( SELECT json_group_object( col, json_array( case when json_valid("oldval") then json("oldval") else "oldval" end, case when json_valid("newval") then json("newval") else "newval" end) ) AS "changes" FROM ( SELECT json_extract(value, '$[0]') as "col", json_extract(value, '$[1]') as "oldval", json_extract(value, '$[2]') as "newval" FROM json_each(json_array(%(column_array)s)) WHERE "oldval" IS NOT "newval" ) ); END;z3DROP TRIGGER IF EXISTS %(table)s_changes_%(action)s)INSERTUPDATEDELETE changelogc " || _ || _ d S N)db table_name)selfr r s r __init__zChangeLog.__init__7 s $r Nc , g }|j j D ]q}|j r | |j |v r|j }|sdnd|z }|sdnd|z } t |t r|rd| z } |rd|z }| d|d| d|d rd | S ) NNULLzNEW."%s"zOLD."%s"zjson(%s)zjson_array('z', z, )) _meta sorted_fieldsr namecolumn_name isinstancer appendjoin) r! modeluse_olduse_newskip_fields col_arrayfieldcolumnnewolds r _build_column_arrayzChangeLog._build_column_array; s [. N NE &5:+D+D&F '@&&Z&-@C '@&&Z&-@C%++ 3 2*s"2C2*s"2C666333LMMMMyy###r c || j v sJ |dk }|dk }| |||| }| j |j j ||dk rdnd|j j j || j dz S )Nr r NEWOLD)r r new_oldr column_arraychange_table)_actionsr6 templater&