52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
"""message reads
|
|
|
|
Revision ID: d7a3c5e9f2b1
|
|
Revises: f8c2d6e1a4b7
|
|
Create Date: 2026-10-19 01:00:00.000000
|
|
|
|
"""
|
|
|
|
from collections.abc import Sequence
|
|
|
|
from alembic import op
|
|
|
|
revision: str = "d7a3c5e9f2b1"
|
|
down_revision: str | None = "f8c2d6e1a4b7"
|
|
branch_labels: str | Sequence[str] | None = None
|
|
depends_on: str | Sequence[str] | None = None
|
|
|
|
_READS = """
|
|
CREATE TABLE message_reads (
|
|
account_id integer NOT NULL,
|
|
chat_id bigint NOT NULL,
|
|
message_id bigint NOT NULL,
|
|
reader_id bigint NOT NULL,
|
|
read_at timestamptz NOT NULL,
|
|
source text NOT NULL,
|
|
fetched_at timestamptz NOT NULL DEFAULT now(),
|
|
PRIMARY KEY (account_id, chat_id, message_id, reader_id)
|
|
)
|
|
"""
|
|
|
|
_FETCHES = """
|
|
CREATE TABLE read_fetches (
|
|
account_id integer NOT NULL,
|
|
chat_id bigint NOT NULL,
|
|
message_id bigint NOT NULL,
|
|
outcome text NOT NULL,
|
|
fetched_at timestamptz NOT NULL DEFAULT now(),
|
|
retry_at timestamptz NOT NULL,
|
|
PRIMARY KEY (account_id, chat_id, message_id)
|
|
)
|
|
"""
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.execute(_READS)
|
|
op.execute(_FETCHES)
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.execute("DROP TABLE IF EXISTS read_fetches")
|
|
op.execute("DROP TABLE IF EXISTS message_reads")
|