Database
The full tc-divisions SQL: 9 tc_div_* tables.
#Installation
Import the file once into the database used by oxmysql (MariaDB / MySQL, utf8mb4). It is idempotent. Tables are also created automatically when the resource starts.
#Tables
| Table | Content |
|---|---|
tc_div_divisions | Divisions (per job): label, colour, order |
tc_div_members | Characters' membership of divisions |
tc_div_jobs | Per-job settings: management grade, boss chest limits |
tc_div_chests | Chests: position, capacity, prop, access, code, managing company |
tc_div_shops | Shops: position, ped / prop, access, code, payment |
tc_div_shop_entries | Items and outfits of each shop |
tc_div_garages | Garages: spawn spots, storage, plate prefix, access |
tc_div_garage_vehicles | Service vehicles per garage: divisions, access, grades, roof number |
tc_div_logs | Action journal |
#Full SQL
Show install.sql (157 lines)
install.sqlDownload
-- tc-divisions : installation (idempotent, MariaDB / MySQL, utf8mb4).
-- Les tables sont aussi créées automatiquement au démarrage de la ressource (même contenu).
-- Installation manuelle : importer ce fichier une fois dans la base utilisée par oxmysql.
-- Anciennes bases (ressource d'origine) : utiliser le fichier de migration fourni à part, AVANT le premier démarrage.
CREATE TABLE IF NOT EXISTS `tc_div_divisions` (
`id` INT NOT NULL AUTO_INCREMENT,
`job` VARCHAR(50) NOT NULL,
`label` VARCHAR(48) NOT NULL,
`color` VARCHAR(9) NOT NULL DEFAULT '#5566c1',
`sort` INT NOT NULL DEFAULT 0,
`created_by` VARCHAR(96) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_job` (`job`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_members` (
`identifier` VARCHAR(96) NOT NULL,
`job` VARCHAR(50) NOT NULL,
`division_id` INT NOT NULL,
`name` VARCHAR(96) DEFAULT NULL,
`assigned_by` VARCHAR(96) DEFAULT NULL,
`assigned_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`identifier`, `job`, `division_id`),
KEY `idx_division` (`division_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_jobs` (
`job` VARCHAR(50) NOT NULL,
`manage_grade` INT DEFAULT NULL,
`chest_max` INT DEFAULT NULL,
`chest_slots` INT DEFAULT NULL,
`chest_weight` INT DEFAULT NULL,
PRIMARY KEY (`job`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_chests` (
`id` INT NOT NULL AUTO_INCREMENT,
`label` VARCHAR(64) NOT NULL,
`chest_key` VARCHAR(32) NOT NULL,
`x` DOUBLE NOT NULL,
`y` DOUBLE NOT NULL,
`z` DOUBLE NOT NULL,
`h` DOUBLE NOT NULL DEFAULT 0,
`radius` FLOAT NOT NULL DEFAULT 1.5,
`slots` INT NOT NULL DEFAULT 50,
`weight` INT NOT NULL DEFAULT 200,
`prop` VARCHAR(64) DEFAULT NULL,
`blip` TINYINT NOT NULL DEFAULT 0,
`access` LONGTEXT DEFAULT NULL,
`code` VARCHAR(16) DEFAULT NULL,
`code_mode` VARCHAR(8) NOT NULL DEFAULT 'none',
`enabled` TINYINT NOT NULL DEFAULT 1,
`owner_job` VARCHAR(50) DEFAULT NULL, -- entreprise dont le patron gère le coffre
`created_by` VARCHAR(96) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
`updated_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_chest` (`chest_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_shops` (
`id` INT NOT NULL AUTO_INCREMENT,
`label` VARCHAR(64) NOT NULL,
`x` DOUBLE NOT NULL,
`y` DOUBLE NOT NULL,
`z` DOUBLE NOT NULL,
`h` DOUBLE NOT NULL DEFAULT 0,
`radius` FLOAT NOT NULL DEFAULT 1.5,
`prop` VARCHAR(64) DEFAULT NULL,
`ped` VARCHAR(64) DEFAULT NULL,
`blip` TINYINT NOT NULL DEFAULT 0,
`access` LONGTEXT DEFAULT NULL,
`code` VARCHAR(16) DEFAULT NULL,
`code_mode` VARCHAR(8) NOT NULL DEFAULT 'none',
`payment` VARCHAR(8) NOT NULL DEFAULT 'free',
`enabled` TINYINT NOT NULL DEFAULT 1,
`created_by` VARCHAR(96) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
`updated_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_shop_entries` (
`id` INT NOT NULL AUTO_INCREMENT,
`shop_id` INT NOT NULL,
`kind` VARCHAR(8) NOT NULL DEFAULT 'item',
`item` VARCHAR(64) DEFAULT NULL,
`label` VARCHAR(64) NOT NULL,
`price` INT NOT NULL DEFAULT 0,
`quantity` INT NOT NULL DEFAULT 1,
`sex` VARCHAR(1) DEFAULT NULL,
`skin` LONGTEXT DEFAULT NULL,
`access` LONGTEXT DEFAULT NULL,
`sort` INT NOT NULL DEFAULT 0,
`enabled` TINYINT NOT NULL DEFAULT 1,
PRIMARY KEY (`id`),
KEY `idx_shop` (`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_garages` (
`id` INT NOT NULL AUTO_INCREMENT,
`label` VARCHAR(64) NOT NULL,
`x` DOUBLE NOT NULL,
`y` DOUBLE NOT NULL,
`z` DOUBLE NOT NULL,
`h` DOUBLE NOT NULL DEFAULT 0,
`radius` FLOAT NOT NULL DEFAULT 1.5,
`prop` VARCHAR(64) DEFAULT NULL,
`ped` VARCHAR(64) DEFAULT NULL,
`blip` TINYINT NOT NULL DEFAULT 0,
`access` LONGTEXT DEFAULT NULL,
`code` VARCHAR(16) DEFAULT NULL,
`code_mode` VARCHAR(8) NOT NULL DEFAULT 'none',
`spawns` LONGTEXT DEFAULT NULL,
`store` LONGTEXT DEFAULT NULL,
`plate_prefix` VARCHAR(4) DEFAULT NULL,
`enabled` TINYINT NOT NULL DEFAULT 1,
`created_by` VARCHAR(96) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
`updated_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_garage_vehicles` (
`id` INT NOT NULL AUTO_INCREMENT,
`garage_id` INT NOT NULL,
`model` VARCHAR(64) NOT NULL,
`label` VARCHAR(64) NOT NULL,
`props` LONGTEXT DEFAULT NULL,
`divisions` LONGTEXT DEFAULT NULL,
`shared` TINYINT NOT NULL DEFAULT 0, -- commun en plus de ses divisions
`callsign` TINYINT NOT NULL DEFAULT 0, -- chiffres du numéro de toit (0 = aucun)
`access` LONGTEXT DEFAULT NULL,
`grades` LONGTEXT DEFAULT NULL, -- { [job] = { min = grade pour le voir, all = grade qui le voit sans division } }
`sort` INT NOT NULL DEFAULT 0,
`enabled` TINYINT NOT NULL DEFAULT 1,
PRIMARY KEY (`id`),
KEY `idx_garage` (`garage_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `tc_div_logs` (
`id` INT NOT NULL AUTO_INCREMENT,
`kind` VARCHAR(12) NOT NULL,
`ref_id` INT DEFAULT NULL,
`ref_label` VARCHAR(64) DEFAULT NULL,
`ident` VARCHAR(96) DEFAULT NULL,
`name` VARCHAR(96) DEFAULT NULL,
`action` VARCHAR(32) NOT NULL,
`detail` VARCHAR(255) DEFAULT NULL,
`created_at` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_kind` (`kind`, `ref_id`),
KEY `idx_created` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;Identifiers
The identifier columns hold the character identifier according to your framework: Vision / ESX identifier, citizenid on QBCore / Qbox, Rockstar license in standalone.