Releases: Project-Sloth/ps-mdt
Releases · Project-Sloth/ps-mdt
Release list
3.1.4
What's Changed
- Full changes by @MonkeyWhisper in #564
- fix(ci/workflow): remove string regex matching for releases by @complexza in #565
Full Changelog: 3.1.3...3.1.4
3.1.3
What's Changed
Full Changelog: v3.1.2...3.1.3
v3.1.2
What's Changed
- chore: removing dist from repo by @simsonas86 in #539
- feat(services): refactor auth and color configuration flow by @simsonas86 in #540
- fix(utils): stop returning mockData on timeout by @simsonas86 in #541
- Add release workflow for tagged commits by @complexza in #547
New Contributors
- @simsonas86 made their first contribution in #539
Full Changelog: 3.1.1...v3.1.2
3.1.1
What's Changed
- chore: remove claude properties and add gitignore by @complexza in #535
Full Changelog: 3.1.0...3.1.1
3.1.0
What's Changed
- refactor: simplify RegisterNetEvent handler by removing redundant AddEventHandler by @12LetterMeme in #533
New Contributors
- @12LetterMeme made their first contribution in #533
Full Changelog: 3.0.8...3.1.0
There are NEW SQL to be added for DOJ!
3.0.8
Full Changelog: 3.0.7...3.0.8
New SQL must be ran.
-- FTO (Field Training Officer) Tables
CREATE TABLE IF NOT EXISTS `mdt_fto_phases` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`job` varchar(50) NOT NULL DEFAULT 'police',
`name` varchar(200) NOT NULL,
`description` text DEFAULT NULL,
`duration_days` int(10) unsigned DEFAULT 0,
`sort_order` int(10) unsigned DEFAULT 0,
PRIMARY KEY (`id`),
KEY `job` (`job`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE IF NOT EXISTS `mdt_fto_competencies` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`job` varchar(50) NOT NULL DEFAULT 'police',
`name` varchar(200) NOT NULL,
`category` varchar(100) DEFAULT 'General',
`sort_order` int(10) unsigned DEFAULT 0,
PRIMARY KEY (`id`),
KEY `job` (`job`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE IF NOT EXISTS `mdt_fto_assignments` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`fto_number` varchar(20) NOT NULL DEFAULT '',
`trainee_citizenid` varchar(50) NOT NULL,
`trainee_name` varchar(100) NOT NULL,
`trainer_citizenid` varchar(50) NOT NULL,
`trainer_name` varchar(100) NOT NULL,
`current_phase_id` int(10) unsigned DEFAULT NULL,
`status` enum('active','completed','failed','suspended') NOT NULL DEFAULT 'active',
`start_date` varchar(20) DEFAULT NULL,
`end_date` varchar(20) DEFAULT NULL,
`notes` text DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
`updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `fto_number` (`fto_number`),
KEY `trainee_citizenid` (`trainee_citizenid`),
KEY `trainer_citizenid` (`trainer_citizenid`),
KEY `status` (`status`),
KEY `current_phase_id` (`current_phase_id`),
CONSTRAINT `FK_fto_assignments_phase` FOREIGN KEY (`current_phase_id`) REFERENCES `mdt_fto_phases` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE IF NOT EXISTS `mdt_fto_dors` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`assignment_id` int(10) unsigned NOT NULL,
`phase_id` int(10) unsigned DEFAULT NULL,
`author_citizenid` varchar(50) NOT NULL,
`author_name` varchar(100) NOT NULL,
`shift_date` varchar(20) NOT NULL,
`overall_rating` int(1) unsigned NOT NULL DEFAULT 3,
`notes` text DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `assignment_id` (`assignment_id`),
KEY `phase_id` (`phase_id`),
CONSTRAINT `FK_fto_dors_assignment` FOREIGN KEY (`assignment_id`) REFERENCES `mdt_fto_assignments` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_fto_dors_phase` FOREIGN KEY (`phase_id`) REFERENCES `mdt_fto_phases` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE IF NOT EXISTS `mdt_fto_dor_ratings` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`dor_id` int(10) unsigned NOT NULL,
`competency_id` int(10) unsigned NOT NULL,
`rating` int(1) unsigned NOT NULL DEFAULT 3,
`notes` text DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `dor_id` (`dor_id`),
KEY `competency_id` (`competency_id`),
CONSTRAINT `FK_fto_dor_ratings_dor` FOREIGN KEY (`dor_id`) REFERENCES `mdt_fto_dors` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_fto_dor_ratings_competency` FOREIGN KEY (`competency_id`) REFERENCES `mdt_fto_competencies` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- FTO Default Data (change 'police' to your job name if different)
INSERT IGNORE INTO `mdt_fto_phases` (`id`, `job`, `name`, `description`, `duration_days`, `sort_order`) VALUES
(1, 'police', 'Phase 1 - Observation', 'Trainee observes the FTO during calls and patrol. FTO demonstrates proper procedures, report writing, and radio communication.', 14, 1),
(2, 'police', 'Phase 2 - Supervised Patrol', 'Trainee takes the lead on calls with FTO supervision. FTO evaluates decision-making, officer safety, and law application.', 21, 2),
(3, 'police', 'Phase 3 - Reduced Supervision', 'Trainee operates with minimal FTO input. FTO only intervenes when necessary and evaluates readiness for solo patrol.', 14, 3),
(4, 'police', 'Phase 4 - Solo Evaluation', 'Trainee patrols independently while the FTO observes from a distance or reviews reports. Final evaluation before sign-off.', 7, 4);
INSERT IGNORE INTO `mdt_fto_competencies` (`id`, `job`, `name`, `category`, `sort_order`) VALUES
(1, 'police', 'Driving and Vehicle Operations', 'Patrol', 1),
(2, 'police', 'Radio Communication', 'Communication', 2),
(3, 'police', 'Verbal Communication', 'Communication', 3),
(4, 'police', 'Report Writing', 'Documentation', 4),
(5, 'police', 'Knowledge of Penal Codes', 'Legal', 5),
(6, 'police', 'Knowledge of Traffic Laws', 'Legal', 6),
(7, 'police', 'Use of Force Decisions', 'Tactical', 7),
(8, 'police', 'Officer Safety and Awareness', 'Tactical', 8),
(9, 'police', 'Suspect Interaction and De-escalation', 'Communication', 9),
(10, 'police', 'Scene Management', 'Tactical', 10),
(11, 'police', 'Evidence Handling', 'Documentation', 11),
(12, 'police', 'Professionalism and Conduct', 'General', 12);
3.0.7
What's Changed
- Fix: Roster using nonexistent function to retrieve players on QBX by @Crayons0814 in #527
- Fix for missing table in QBX SQL files by @KodakZack in #530
New Contributors
- @KodakZack made their first contribution in #530
Full Changelog: 3.0.6...3.0.7
There are SQL changes - make sure that you review them and adjust them.
3.0.6
Full Changelog: 3.0.5...3.0.6
There is A LOT OF CHANGES TO THE SQL! Import all the new tables mdt_sop_* and the sample data if you want for the new SOP. Can be found under -- SOP Default Data (change 'police' to your job name if different)
3.0.5
Full Changelog: 3.0.4...3.0.5
MUST RUN NEW SQL UPDATE!
-- Internal Affairs
CREATE TABLE IF NOT EXISTS `mdt_ia_complaints` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`complaint_number` varchar(20) NOT NULL,
`complainant_citizenid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`complainant_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`complainant_phone` varchar(20) DEFAULT NULL,
`officer_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`officer_badge` varchar(20) DEFAULT NULL,
`category` enum('misconduct','excessive_force','corruption','negligence','discrimination','other') NOT NULL DEFAULT 'other',
`description` text NOT NULL,
`incident_date` varchar(20) DEFAULT NULL,
`incident_location` varchar(200) DEFAULT NULL,
`witnesses` text DEFAULT NULL,
`evidence` text DEFAULT NULL,
`status` enum('open','under_review','investigated','sustained','exonerated','unfounded','closed') NOT NULL DEFAULT 'open',
`assigned_to` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`assigned_to_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
`updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `complaint_number` (`complaint_number`),
KEY `status` (`status`),
KEY `assigned_to` (`assigned_to`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE IF NOT EXISTS `mdt_ia_notes` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`complaint_id` int(10) unsigned NOT NULL,
`content` text NOT NULL,
`author_citizenid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`author_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `complaint_id` (`complaint_id`),
CONSTRAINT `FK_ia_notes_complaints` FOREIGN KEY (`complaint_id`) REFERENCES `mdt_ia_complaints` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=UTF8MB4_GENERAL_CI;
CREATE TABLE IF NOT EXISTS `mdt_case_notes` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`case_id` int(10) unsigned NOT NULL,
`content` text NOT NULL,
`author_citizenid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`author_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `case_id` (`case_id`),
CONSTRAINT `FK_mdt_case_notes_cases` FOREIGN KEY (`case_id`) REFERENCES `mdt_cases` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;