CREATE TABLE `blocklist` ( `id` text PRIMARY KEY NOT NULL, `kind` text NOT NULL, `value` text NOT NULL, `reason` text, `active` integer DEFAULT true NOT NULL, `added_by` text, `added_at` text DEFAULT (current_timestamp) NOT NULL ); --> statement-breakpoint CREATE TABLE `device_events` ( `id` text PRIMARY KEY NOT NULL, `device_id` text, `category` text, `kind` text NOT NULL, `detail` text, `occurred_at` text DEFAULT (current_timestamp) NOT NULL ); --> statement-breakpoint CREATE TABLE `devices` ( `id` text PRIMARY KEY NOT NULL, `category` text NOT NULL, `driver_id` text NOT NULL, `config` text NOT NULL, `enabled` integer DEFAULT true NOT NULL, `created_at` text DEFAULT (current_timestamp) NOT NULL ); --> statement-breakpoint CREATE TABLE `ledger_events` ( `id` text PRIMARY KEY NOT NULL, `index` integer NOT NULL, `type` text NOT NULL, `direction` text, `source` text, `identity` text, `payload` text, `occurred_at` text NOT NULL, `prev_hash` text, `signature` text NOT NULL, `key_id` text NOT NULL ); --> statement-breakpoint CREATE UNIQUE INDEX `ledger_events_index_unique` ON `ledger_events` (`index`);--> statement-breakpoint CREATE TABLE `permit_credentials` ( `id` text PRIMARY KEY NOT NULL, `permit_id` text NOT NULL, `kind` text NOT NULL, `value` text NOT NULL ); --> statement-breakpoint CREATE TABLE `permit_plates` ( `id` text PRIMARY KEY NOT NULL, `permit_id` text NOT NULL, `plate` text NOT NULL ); --> statement-breakpoint CREATE TABLE `permits` ( `id` text PRIMARY KEY NOT NULL, `holder_name` text, `contact` text, `max_concurrent` integer DEFAULT 1, `valid_from` text, `valid_to` text, `status` text DEFAULT 'active' NOT NULL, `created_at` text DEFAULT (current_timestamp) NOT NULL ); --> statement-breakpoint CREATE TABLE `sessions` ( `id` text PRIMARY KEY NOT NULL, `identity` text, `source` text, `permit_id` text, `entered_at` text NOT NULL, `exited_at` text, `state` text DEFAULT 'open' NOT NULL, `last_event_index` integer ); --> statement-breakpoint CREATE TABLE `setup_state` ( `id` integer PRIMARY KEY NOT NULL, `completed_at` text ); --> statement-breakpoint CREATE TABLE `site_config` ( `id` integer PRIMARY KEY NOT NULL, `capacity` integer, `updated_at` text DEFAULT (current_timestamp) NOT NULL ); --> statement-breakpoint CREATE TABLE `snapshots` ( `id` text PRIMARY KEY NOT NULL, `direction` text NOT NULL, `device_id` text, `identity` text, `content_type` text NOT NULL, `bytes` blob NOT NULL, `captured_at` text NOT NULL ); --> statement-breakpoint CREATE TABLE `tariff_versions` ( `id` text PRIMARY KEY NOT NULL, `tariff_id` text NOT NULL, `effective_from` text NOT NULL, `currency` text NOT NULL, `structure` text NOT NULL, `created_by` text, `created_at` text DEFAULT (current_timestamp) NOT NULL ); --> statement-breakpoint CREATE TABLE `tariffs` ( `id` text PRIMARY KEY NOT NULL, `scope` text DEFAULT 'site' NOT NULL, `name` text NOT NULL, `created_at` text DEFAULT (current_timestamp) NOT NULL ); --> statement-breakpoint CREATE TABLE `users` ( `id` text PRIMARY KEY NOT NULL, `username` text NOT NULL, `password_hash` text NOT NULL, `role` text NOT NULL, `created_at` text DEFAULT (current_timestamp) NOT NULL ); --> statement-breakpoint CREATE UNIQUE INDEX `users_username_unique` ON `users` (`username`);