🛠️Installation
Database
CREATE TABLE IF NOT EXISTS `m_court_announcements` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`body` text NOT NULL,
`posted_by` varchar(100) NOT NULL,
`pinned` tinyint(1) NOT NULL DEFAULT 0,
`date` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_pinned` (`pinned`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_appointments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`player_name` varchar(100) NOT NULL,
`identifier` varchar(100) NOT NULL,
`service_type` varchar(100) NOT NULL,
`attorney_name` varchar(100) DEFAULT '',
`date` date DEFAULT NULL,
`time` varchar(10) DEFAULT NULL,
`status` enum('pending','approved','rejected') NOT NULL DEFAULT 'pending',
`notes` text DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_identifier` (`identifier`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_businesses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
`owner_name` varchar(100) NOT NULL,
`owner_identifier` varchar(100) NOT NULL,
`tax_rate` decimal(5,2) NOT NULL DEFAULT 0.00,
`status` enum('pending','approved','revoked') NOT NULL DEFAULT 'pending',
`total_tax` decimal(12,2) NOT NULL DEFAULT 0.00,
`income` decimal(12,2) NOT NULL DEFAULT 0.00,
`created_by` varchar(100) DEFAULT '',
`date` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_owner` (`owner_identifier`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_cases` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`case_name` varchar(200) NOT NULL,
`defendant` varchar(100) NOT NULL,
`defense_attorney` varchar(100) DEFAULT '',
`settlement_fee` int(11) DEFAULT 0,
`public` tinyint(1) NOT NULL DEFAULT 0,
`date` date DEFAULT NULL,
`time` varchar(10) DEFAULT NULL,
`verdict` text DEFAULT NULL,
`status` enum('open','closed') NOT NULL DEFAULT 'open',
`created_by` varchar(100) DEFAULT '',
PRIMARY KEY (`id`),
KEY `idx_status` (`status`),
KEY `idx_public` (`public`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_chat_members` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`room_id` int(11) NOT NULL,
`identifier` varchar(100) NOT NULL,
`added_by` varchar(100) DEFAULT '',
`added_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `uq_room_member` (`room_id`,`identifier`),
KEY `idx_identifier` (`identifier`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_chat_messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`room_id` int(11) NOT NULL,
`sender_name` varchar(100) NOT NULL,
`identifier` varchar(100) NOT NULL,
`message` text NOT NULL,
`sent_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_room_id` (`room_id`),
KEY `idx_sent_at` (`sent_at`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_chat_rooms` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(80) NOT NULL,
`created_by` varchar(100) DEFAULT 'system',
`is_general` tinyint(1) NOT NULL DEFAULT 0,
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_criminal_records` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`player_name` varchar(100) NOT NULL,
`identifier` varchar(100) NOT NULL,
`reason` text NOT NULL,
`points` int(11) NOT NULL DEFAULT 0,
`added_by` varchar(100) DEFAULT '',
`date` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_identifier` (`identifier`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_documents` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`doc_type` varchar(60) NOT NULL,
`issued_by` varchar(100) NOT NULL,
`issued_by_id` varchar(100) NOT NULL,
`issued_to_name` varchar(100) NOT NULL DEFAULT '',
`issued_to_id` varchar(100) NOT NULL DEFAULT '',
`fields` text NOT NULL,
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_issued_to` (`issued_to_id`),
KEY `idx_type` (`doc_type`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_election_votes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`election_id` int(11) NOT NULL,
`identifier` varchar(100) NOT NULL,
`candidate` varchar(100) NOT NULL,
`voted_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `uq_voter` (`election_id`,`identifier`),
KEY `idx_election` (`election_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_elections` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`candidates_json` text NOT NULL,
`created_by` varchar(100) DEFAULT '',
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
`closes_at` datetime NOT NULL,
`status` enum('active','closed') NOT NULL DEFAULT 'active',
PRIMARY KEY (`id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_evidence` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`case_id` int(11) NOT NULL,
`type` enum('image','video','document') NOT NULL DEFAULT 'document',
`url` text NOT NULL,
`description` text DEFAULT NULL,
`added_by` varchar(100) DEFAULT '',
`date` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_case_id` (`case_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_exams` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`player_name` varchar(100) NOT NULL,
`identifier` varchar(100) NOT NULL,
`exam_type` varchar(50) NOT NULL,
`score` int(3) NOT NULL DEFAULT 0,
`status` enum('pending','approved','denied','failed') NOT NULL DEFAULT 'pending',
`notes` text DEFAULT NULL,
`license_expiry` date DEFAULT NULL,
`date` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_identifier` (`identifier`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_fines` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`player_name` varchar(100) NOT NULL,
`identifier` varchar(100) NOT NULL,
`reason` text NOT NULL,
`amount` int(11) NOT NULL DEFAULT 0,
`paid` tinyint(1) NOT NULL DEFAULT 0,
`issued_by` varchar(100) DEFAULT '',
`date` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_identifier` (`identifier`),
KEY `idx_paid` (`paid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_invoices` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`from_identifier` varchar(100) NOT NULL,
`from_name` varchar(100) NOT NULL,
`to_identifier` varchar(100) NOT NULL,
`to_name` varchar(100) NOT NULL,
`amount` int(11) NOT NULL DEFAULT 0,
`description` text NOT NULL,
`status` enum('pending','paid','rejected','cancelled') NOT NULL DEFAULT 'pending',
`date` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_from` (`from_identifier`),
KEY `idx_to` (`to_identifier`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_jail` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`player_src` int(11) NOT NULL,
`identifier` varchar(100) NOT NULL,
`player_name` varchar(100) NOT NULL,
`duration` int(11) NOT NULL,
`reason` text NOT NULL,
`jailed_by` varchar(100) NOT NULL,
`jailed_at` bigint(20) NOT NULL,
`release_at` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_identifier` (`identifier`),
KEY `idx_jail_release` (`release_at`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_job_permissions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`job` varchar(50) NOT NULL,
`page` varchar(50) NOT NULL,
`min_grade` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_job_page` (`job`,`page`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_licenses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`player_name` varchar(100) NOT NULL,
`identifier` varchar(100) NOT NULL,
`license_key` varchar(50) NOT NULL,
`license_label` varchar(100) NOT NULL,
`status` enum('active','revoked') NOT NULL DEFAULT 'active',
`granted_by` varchar(100) DEFAULT '',
`date` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_identifier` (`identifier`),
KEY `idx_license_key` (`license_key`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_penal_codes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category` varchar(100) NOT NULL,
`code` varchar(20) NOT NULL,
`name` varchar(200) NOT NULL,
`description` text DEFAULT NULL,
`fine` int(11) NOT NULL DEFAULT 0,
`jail` int(11) NOT NULL DEFAULT 0,
`created_by` varchar(100) DEFAULT '',
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `uq_code` (`code`),
KEY `idx_category` (`category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_schedules` (
`identifier` varchar(100) NOT NULL,
`staff_name` varchar(100) NOT NULL,
`schedule_json` text NOT NULL DEFAULT '{}',
`updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_taxes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category` varchar(100) NOT NULL,
`rate` decimal(5,2) NOT NULL DEFAULT 0.00,
`description` text DEFAULT NULL,
`last_updated` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `uq_category` (`category`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_vehicle_images` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`plate` varchar(20) NOT NULL,
`image_url` text NOT NULL,
`updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `uq_plate` (`plate`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_warrants` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`target_name` varchar(150) NOT NULL,
`target_identifier` varchar(100) NOT NULL DEFAULT '',
`type` enum('arrest','search') NOT NULL DEFAULT 'arrest',
`reason` text NOT NULL,
`issued_by` varchar(100) NOT NULL,
`status` enum('active','executed','expired') NOT NULL DEFAULT 'active',
`expires_at` varchar(100) DEFAULT NULL,
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_w_identifier` (`target_identifier`),
KEY `idx_w_status` (`status`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `m_court_witnesses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`case_id` int(11) NOT NULL,
`player_name` varchar(100) NOT NULL,
`identifier` varchar(100) NOT NULL,
`type` enum('witness','observer') NOT NULL DEFAULT 'witness',
`notes` text DEFAULT NULL,
`date` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
KEY `idx_case_id` (`case_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;Items Installation
Job Installation
Last updated