Files
d4rk_tablet/backend/api/drizzle/0000_classy_speedball.sql
T
2026-07-16 09:35:32 +02:00

121 lines
4.4 KiB
SQL

CREATE TABLE `mdt_audit_log` (
`id` int AUTO_INCREMENT NOT NULL,
`actor_citizenid` varchar(50),
`actor_name` varchar(255),
`action` varchar(64) NOT NULL,
`target_type` varchar(32),
`target_id` varchar(64),
`meta` json,
`created_at` timestamp NOT NULL DEFAULT (now()),
CONSTRAINT `mdt_audit_log_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `mdt_bolos` (
`id` int AUTO_INCREMENT NOT NULL,
`kind` enum('person','vehicle') NOT NULL,
`reference` varchar(64) NOT NULL,
`label` varchar(255) NOT NULL,
`reason` text,
`active` boolean NOT NULL DEFAULT true,
`created_by_citizenid` varchar(50),
`created_at` timestamp NOT NULL DEFAULT (now()),
CONSTRAINT `mdt_bolos_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `mdt_case_charges` (
`id` int AUTO_INCREMENT NOT NULL,
`case_id` int NOT NULL,
`catalog_id` int NOT NULL,
`count` int NOT NULL DEFAULT 1,
`fine` int NOT NULL DEFAULT 0,
`jail_time` int NOT NULL DEFAULT 0,
`points` int NOT NULL DEFAULT 0,
CONSTRAINT `mdt_case_charges_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `mdt_cases` (
`id` int AUTO_INCREMENT NOT NULL,
`title` varchar(255) NOT NULL,
`suspect_citizenid` varchar(50) NOT NULL,
`status` enum('open','closed','dismissed') NOT NULL DEFAULT 'open',
`narrative` text,
`total_fine` int NOT NULL DEFAULT 0,
`total_jail_time` int NOT NULL DEFAULT 0,
`officer_citizenid` varchar(50),
`created_at` timestamp NOT NULL DEFAULT (now()),
`updated_at` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `mdt_cases_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `mdt_charges_catalog` (
`id` int AUTO_INCREMENT NOT NULL,
`code` varchar(32) NOT NULL,
`title` varchar(255) NOT NULL,
`category` varchar(64) NOT NULL DEFAULT 'sonstiges',
`fine` int NOT NULL DEFAULT 0,
`jail_time` int NOT NULL DEFAULT 0,
`points` int NOT NULL DEFAULT 0,
`active` boolean NOT NULL DEFAULT true,
CONSTRAINT `mdt_charges_catalog_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `mdt_dispatch_calls` (
`id` int AUTO_INCREMENT NOT NULL,
`code` varchar(32) NOT NULL,
`title` varchar(255) NOT NULL,
`description` text,
`department` enum('police','ems','fire') NOT NULL DEFAULT 'police',
`priority` enum('low','medium','high') NOT NULL DEFAULT 'medium',
`status` enum('pending','assigned','enroute','onscene','closed') NOT NULL DEFAULT 'pending',
`location` varchar(255),
`coords_x` varchar(32),
`coords_y` varchar(32),
`coords_z` varchar(32),
`caller_citizenid` varchar(50),
`assigned_officers` json NOT NULL DEFAULT ('[]'),
`created_at` timestamp NOT NULL DEFAULT (now()),
`updated_at` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `mdt_dispatch_calls_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `mdt_person_records` (
`citizenid` varchar(50) NOT NULL,
`notes` text,
`flags` json NOT NULL DEFAULT ('[]'),
`is_wanted` boolean NOT NULL DEFAULT false,
`mugshot_url` varchar(512),
`updated_at` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
`updated_by` varchar(50),
CONSTRAINT `mdt_person_records_citizenid` PRIMARY KEY(`citizenid`)
);
--> statement-breakpoint
CREATE TABLE `mdt_users` (
`id` int AUTO_INCREMENT NOT NULL,
`citizenid` varchar(50),
`discord_id` varchar(50),
`name` varchar(255) NOT NULL,
`callsign` varchar(32),
`roles` json NOT NULL DEFAULT ('[]'),
`created_at` timestamp NOT NULL DEFAULT (now()),
`updated_at` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT `mdt_users_id` PRIMARY KEY(`id`),
CONSTRAINT `mdt_users_citizenid_unique` UNIQUE(`citizenid`),
CONSTRAINT `mdt_users_discord_id_unique` UNIQUE(`discord_id`)
);
--> statement-breakpoint
CREATE TABLE `mdt_warrants` (
`id` int AUTO_INCREMENT NOT NULL,
`citizenid` varchar(50) NOT NULL,
`reason` text NOT NULL,
`status` enum('active','served','revoked','expired') NOT NULL DEFAULT 'active',
`case_id` int,
`issued_by_citizenid` varchar(50),
`issued_at` timestamp NOT NULL DEFAULT (now()),
`expires_at` timestamp,
CONSTRAINT `mdt_warrants_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE INDEX `audit_actor_idx` ON `mdt_audit_log` (`actor_citizenid`);--> statement-breakpoint
CREATE INDEX `audit_action_idx` ON `mdt_audit_log` (`action`);--> statement-breakpoint
CREATE INDEX `suspect_idx` ON `mdt_cases` (`suspect_citizenid`);--> statement-breakpoint
CREATE INDEX `warrant_citizen_idx` ON `mdt_warrants` (`citizenid`);