|
| 1 | +CREATE TABLE `tunnel` ( |
| 2 | + `id` text PRIMARY KEY NOT NULL, |
| 3 | + `device_token_hash` text NOT NULL, |
| 4 | + `provider_id` text NOT NULL, |
| 5 | + `environment` text NOT NULL, |
| 6 | + `provider_account_id` text NOT NULL, |
| 7 | + `provider_webhook_endpoint_id` text, |
| 8 | + `status` text NOT NULL DEFAULT 'active', |
| 9 | + `created_at` integer NOT NULL, |
| 10 | + `updated_at` integer NOT NULL, |
| 11 | + `last_seen_at` integer NOT NULL, |
| 12 | + `disabled_at` integer |
| 13 | +); |
| 14 | + |
| 15 | +CREATE UNIQUE INDEX `tunnel_device_provider_unique` |
| 16 | + ON `tunnel` (`device_token_hash`, `provider_id`, `environment`, `provider_account_id`); |
| 17 | + |
| 18 | +CREATE INDEX `tunnel_device_idx` ON `tunnel` (`device_token_hash`); |
| 19 | + |
| 20 | +CREATE TABLE `delivery` ( |
| 21 | + `id` text PRIMARY KEY NOT NULL, |
| 22 | + `tunnel_id` text NOT NULL, |
| 23 | + `method` text NOT NULL, |
| 24 | + `headers` text NOT NULL, |
| 25 | + `body` text NOT NULL, |
| 26 | + `status` text NOT NULL DEFAULT 'pending', |
| 27 | + `received_at` integer NOT NULL, |
| 28 | + `delivered_at` integer, |
| 29 | + FOREIGN KEY (`tunnel_id`) REFERENCES `tunnel`(`id`) ON DELETE cascade |
| 30 | +); |
| 31 | + |
| 32 | +CREATE INDEX `delivery_tunnel_status_received_idx` |
| 33 | + ON `delivery` (`tunnel_id`, `status`, `received_at`); |
0 commit comments