first commit
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
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`);
|
||||
Reference in New Issue
Block a user