diff --git a/masterbase/lib.py b/masterbase/lib.py index cdd5145..77ee04f 100644 --- a/masterbase/lib.py +++ b/masterbase/lib.py @@ -682,12 +682,16 @@ def add_report(engine: Engine, session_id: str, target_steam_id: str, reason: st created_at = datetime.now().astimezone(timezone.utc).isoformat() txn.execute( sa.text( - """INSERT INTO reports ( - session_id, target_steam_id, created_at, reason + """ + INSERT INTO reports ( + session_id, target_steam_id, created_at, updated_at, reason ) VALUES ( - :session_id, :target_steam_id, :created_at, :reason) + :session_id, :target_steam_id, :created_at, :created_at, :reason + ) ON CONFLICT (session_id, target_steam_id) - DO UPDATE SET reason = EXCLUDED.reason, created_at = NOW(); + DO UPDATE SET + reason = EXCLUDED.reason, + updated_at = EXCLUDED.created_at; """ ), {"target_steam_id": target_steam_id, "session_id": session_id, "created_at": created_at, "reason": reason}, diff --git a/migrations/versions/bc89a4c6d2b4_report_update_timings.py b/migrations/versions/bc89a4c6d2b4_report_update_timings.py new file mode 100644 index 0000000..a466ae5 --- /dev/null +++ b/migrations/versions/bc89a4c6d2b4_report_update_timings.py @@ -0,0 +1,43 @@ +"""Report update timings + +Revision ID: bc89a4c6d2b4 +Revises: 82f4e558463f +Create Date: 2024-06-23 21:30:34.321859 + +""" + +from typing import Sequence, Union + +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision: str = "bc89a4c6d2b4" +down_revision: Union[str, None] = "82f4e558463f" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + op.execute( + sa.text(""" + ALTER TABLE reports + ADD COLUMN updated_at timestamptz; + + UPDATE reports + SET updated_at = created_at + WHERE updated_at IS NULL; + """) + ) + + +def downgrade() -> None: + op.execute( + sa.text( + """ + ALTER TABLE reports + DROP COLUMN updated_at; + """ + ) + ) + pass