2024-07-24 11:07:04 +08:00
|
|
|
CREATE SCHEMA IF NOT EXISTS aviation;
|
|
|
|
|
|
2025-11-15 09:46:29 +08:00
|
|
|
CREATE EXTENSION IF NOT EXISTS timescaledb;
|
|
|
|
|
|
2024-07-24 11:07:04 +08:00
|
|
|
CREATE TABLE aviation.telegrams (
|
2025-11-15 09:46:29 +08:00
|
|
|
uuid UUID NOT NULL,
|
|
|
|
|
message_id TEXT,
|
|
|
|
|
date_time TEXT,
|
|
|
|
|
priority_indicator TEXT,
|
|
|
|
|
primary_address TEXT,
|
|
|
|
|
secondary_addresses TEXT,
|
|
|
|
|
originator TEXT,
|
|
|
|
|
originator_date_time TEXT,
|
|
|
|
|
category TEXT,
|
2024-08-09 10:29:17 +08:00
|
|
|
content TEXT,
|
|
|
|
|
body_data JSONB,
|
2025-11-15 09:46:29 +08:00
|
|
|
status TEXT NOT NULL DEFAULT 'parsed',
|
2025-11-15 09:01:24 +08:00
|
|
|
error_reason TEXT,
|
2025-11-15 09:46:29 +08:00
|
|
|
received_at TIMESTAMPTZ NOT NULL,
|
|
|
|
|
parsed_at TIMESTAMPTZ,
|
|
|
|
|
dispatched_at TIMESTAMPTZ,
|
|
|
|
|
need_dispatch BOOLEAN,
|
2025-11-15 14:24:11 +08:00
|
|
|
PRIMARY KEY (uuid, received_at)
|
2024-07-24 11:07:04 +08:00
|
|
|
);
|
|
|
|
|
|
2025-11-15 09:46:29 +08:00
|
|
|
SELECT create_hypertable('aviation.telegrams', 'received_at', if_not_exists => TRUE);
|
|
|
|
|
|
2024-07-24 11:07:04 +08:00
|
|
|
-- Indexes for better query performance
|
|
|
|
|
CREATE INDEX idx_telegrams_message_id ON aviation.telegrams (message_id);
|
|
|
|
|
CREATE INDEX idx_telegrams_date_time ON aviation.telegrams (date_time);
|
|
|
|
|
CREATE INDEX idx_telegrams_priority_indicator ON aviation.telegrams (priority_indicator);
|
|
|
|
|
CREATE INDEX idx_telegrams_primary_address ON aviation.telegrams (primary_address);
|
|
|
|
|
CREATE INDEX idx_telegrams_received_at ON aviation.telegrams (received_at);
|
2025-11-15 09:46:29 +08:00
|
|
|
CREATE INDEX idx_telegrams_uuid ON aviation.telegrams (uuid);
|
2025-11-15 09:01:24 +08:00
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS aviation.telegrams_raw (
|
2025-11-15 09:46:29 +08:00
|
|
|
uuid UUID NOT NULL,
|
|
|
|
|
status TEXT NOT NULL,
|
2025-11-15 09:01:24 +08:00
|
|
|
error_reason TEXT,
|
|
|
|
|
content TEXT NOT NULL,
|
2025-11-15 09:46:29 +08:00
|
|
|
received_at TIMESTAMPTZ NOT NULL,
|
|
|
|
|
metadata JSONB,
|
2025-11-15 14:24:11 +08:00
|
|
|
PRIMARY KEY (uuid, received_at)
|
2025-11-15 09:01:24 +08:00
|
|
|
);
|