This commit is contained in:
Flatlogic Bot 2026-05-07 00:39:13 +00:00
parent 3b20de71b5
commit 3b2871e0a5
3 changed files with 19333 additions and 18970 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,9 @@
/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: 127.0.0.1 Database: app_39514
-- ------------------------------------------------------
-- Server version 10.11.14-MariaDB-0+deb12u2
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@ -10,6 +15,11 @@
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `tbl_auth`
--
DROP TABLE IF EXISTS `tbl_auth`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -17,11 +27,38 @@ CREATE TABLE `tbl_auth` (
`cl_auth_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cl_auth_user` varchar(190) NOT NULL,
`cl_auth_pass` varchar(255) NOT NULL,
`cl_auth_right` enum('admin','member') NOT NULL DEFAULT 'member',
`cl_auth_right` enum('admin','moderator','member') NOT NULL DEFAULT 'member',
PRIMARY KEY (`cl_auth_id`),
UNIQUE KEY `cl_auth_user` (`cl_auth_user`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_page_access`
--
DROP TABLE IF EXISTS `tbl_page_access`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tbl_page_access` (
`cl_page_access_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cl_page_key` varchar(190) NOT NULL,
`cl_page_file` varchar(190) NOT NULL,
`cl_page_label` varchar(190) NOT NULL,
`cl_allow_admin` tinyint(1) NOT NULL DEFAULT 1,
`cl_allow_moderator` tinyint(1) NOT NULL DEFAULT 0,
`cl_allow_member` tinyint(1) NOT NULL DEFAULT 0,
`cl_updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`cl_page_access_id`),
UNIQUE KEY `cl_page_key` (`cl_page_key`),
UNIQUE KEY `cl_page_file` (`cl_page_file`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scbanners`
--
DROP TABLE IF EXISTS `tbl_scbanners`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -33,6 +70,73 @@ CREATE TABLE `tbl_scbanners` (
PRIMARY KEY (`cl_scbanner_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_sccharacteritems`
--
DROP TABLE IF EXISTS `tbl_sccharacteritems`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tbl_sccharacteritems` (
`cl_sccharacteritem_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cl_sccharacteritem_character_id` int(10) unsigned NOT NULL,
`cl_sccharacteritem_source` enum('base','custom') NOT NULL DEFAULT 'base',
`cl_sccharacteritem_scobjs_id` int(10) unsigned DEFAULT NULL,
`cl_sccharacteritem_scitemcustom_id` int(11) DEFAULT NULL,
`cl_sccharacteritem_slot` varchar(120) NOT NULL DEFAULT '',
`cl_sccharacteritem_quantity` int(10) unsigned DEFAULT NULL,
`cl_sccharacteritem_note` text DEFAULT NULL,
`cl_sccharacteritem_sort_order` int(10) unsigned NOT NULL DEFAULT 0,
`cl_sccharacteritem_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`cl_sccharacteritem_id`),
KEY `idx_sccharacteritem_character` (`cl_sccharacteritem_character_id`),
KEY `idx_sccharacteritem_scobjs` (`cl_sccharacteritem_scobjs_id`),
KEY `idx_sccharacteritem_scitemcustom` (`cl_sccharacteritem_scitemcustom_id`),
KEY `idx_sccharacteritem_character_sort` (`cl_sccharacteritem_character_id`,`cl_sccharacteritem_sort_order`,`cl_sccharacteritem_id`),
CONSTRAINT `fk_sccharacteritem_character` FOREIGN KEY (`cl_sccharacteritem_character_id`) REFERENCES `tbl_sccharacters` (`cl_sccharacter_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_sccharacteritem_scitemcustom` FOREIGN KEY (`cl_sccharacteritem_scitemcustom_id`) REFERENCES `tbl_scitemcustom` (`cl_scitemcustom_id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `fk_sccharacteritem_scobjs` FOREIGN KEY (`cl_sccharacteritem_scobjs_id`) REFERENCES `tbl_scobjs` (`cl_scobjs_id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_sccharacters`
--
DROP TABLE IF EXISTS `tbl_sccharacters`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tbl_sccharacters` (
`cl_sccharacter_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cl_sccharacter_owner_auth_id` int(10) unsigned NOT NULL,
`cl_sccharacter_name` varchar(190) NOT NULL,
`cl_sccharacter_role` varchar(190) NOT NULL DEFAULT '',
`cl_sccharacter_faction` varchar(190) NOT NULL DEFAULT '',
`cl_sccharacter_org_rsi_url` varchar(255) NOT NULL DEFAULT '',
`cl_sccharacter_is_player` tinyint(1) NOT NULL DEFAULT 0,
`cl_sccharacter_player_handle` varchar(190) NOT NULL DEFAULT '',
`cl_sccharacter_avatar_url` varchar(255) NOT NULL DEFAULT '',
`cl_sccharacter_description` text DEFAULT NULL,
`cl_sccharacter_notes` text DEFAULT NULL,
`cl_sccharacter_share_token` varchar(64) NOT NULL,
`cl_sccharacter_share_enabled` tinyint(1) NOT NULL DEFAULT 0,
`cl_sccharacter_is_pinned` tinyint(1) NOT NULL DEFAULT 0,
`cl_sccharacter_category_order` text DEFAULT NULL,
`cl_sccharacter_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`cl_sccharacter_updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`cl_sccharacter_id`),
UNIQUE KEY `uq_sccharacter_share_token` (`cl_sccharacter_share_token`),
KEY `idx_sccharacter_owner` (`cl_sccharacter_owner_auth_id`),
KEY `idx_sccharacter_name` (`cl_sccharacter_name`),
CONSTRAINT `fk_sccharacter_owner_auth` FOREIGN KEY (`cl_sccharacter_owner_auth_id`) REFERENCES `tbl_auth` (`cl_auth_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scitemcustom`
--
DROP TABLE IF EXISTS `tbl_scitemcustom`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -42,13 +146,17 @@ CREATE TABLE `tbl_scitemcustom` (
`cl_scitemcustom_obj_id` int(10) unsigned NOT NULL,
`cl_scitemcustom_created_at` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`cl_scitemcustom_id`),
UNIQUE KEY `uq_scitemcustom_owner_obj` (`cl_scitemcustom_owner_auth_id`,`cl_scitemcustom_obj_id`),
KEY `idx_scitemcustom_obj` (`cl_scitemcustom_obj_id`),
KEY `idx_scitemcustom_owner` (`cl_scitemcustom_owner_auth_id`),
CONSTRAINT `fk_scitemcustom_obj` FOREIGN KEY (`cl_scitemcustom_obj_id`) REFERENCES `tbl_scobjs` (`cl_scobjs_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_scitemcustom_owner_auth` FOREIGN KEY (`cl_scitemcustom_owner_auth_id`) REFERENCES `tbl_auth` (`cl_auth_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scitemcustomstat`
--
DROP TABLE IF EXISTS `tbl_scitemcustomstat`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -65,8 +173,13 @@ CREATE TABLE `tbl_scitemcustomstat` (
KEY `idx_scitemcustomstat_stat` (`cl_scitemcustomstat_stat_id`),
CONSTRAINT `fk_scitemcustomstat_item` FOREIGN KEY (`cl_scitemcustomstat_itemcustom_id`) REFERENCES `tbl_scitemcustom` (`cl_scitemcustom_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_scitemcustomstat_stat` FOREIGN KEY (`cl_scitemcustomstat_stat_id`) REFERENCES `tbl_scstatsitem` (`cl_scstatsitem_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scmanufactures`
--
DROP TABLE IF EXISTS `tbl_scmanufactures`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -77,6 +190,66 @@ CREATE TABLE `tbl_scmanufactures` (
UNIQUE KEY `cl_scmanufactures_name` (`cl_scmanufactures_name`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scmanutentionitems`
--
DROP TABLE IF EXISTS `tbl_scmanutentionitems`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tbl_scmanutentionitems` (
`cl_scmanutentionitem_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cl_scmanutentionitem_manutention_id` int(10) unsigned NOT NULL,
`cl_scmanutentionitem_source` enum('base','custom') NOT NULL DEFAULT 'base',
`cl_scmanutentionitem_scobjs_id` int(10) unsigned DEFAULT NULL,
`cl_scmanutentionitem_scitemcustom_id` int(11) DEFAULT NULL,
`cl_scmanutentionitem_quantity` int(10) unsigned NOT NULL DEFAULT 1,
`cl_scmanutentionitem_extra_info` text DEFAULT NULL,
`cl_scmanutentionitem_sort_order` int(10) unsigned NOT NULL DEFAULT 0,
`cl_scmanutentionitem_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`cl_scmanutentionitem_updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`cl_scmanutentionitem_id`),
KEY `idx_scmanutentionitem_sheet` (`cl_scmanutentionitem_manutention_id`),
KEY `idx_scmanutentionitem_scobjs` (`cl_scmanutentionitem_scobjs_id`),
KEY `idx_scmanutentionitem_scitemcustom` (`cl_scmanutentionitem_scitemcustom_id`),
KEY `idx_scmanutentionitem_sheet_sort` (`cl_scmanutentionitem_manutention_id`,`cl_scmanutentionitem_sort_order`,`cl_scmanutentionitem_id`),
CONSTRAINT `fk_scmanutentionitem_scitemcustom` FOREIGN KEY (`cl_scmanutentionitem_scitemcustom_id`) REFERENCES `tbl_scitemcustom` (`cl_scitemcustom_id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `fk_scmanutentionitem_scobjs` FOREIGN KEY (`cl_scmanutentionitem_scobjs_id`) REFERENCES `tbl_scobjs` (`cl_scobjs_id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `fk_scmanutentionitem_sheet` FOREIGN KEY (`cl_scmanutentionitem_manutention_id`) REFERENCES `tbl_scmanutentions` (`cl_scmanutention_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scmanutentions`
--
DROP TABLE IF EXISTS `tbl_scmanutentions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `tbl_scmanutentions` (
`cl_scmanutention_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cl_scmanutention_owner_auth_id` int(10) unsigned NOT NULL,
`cl_scmanutention_title` varchar(190) NOT NULL,
`cl_scmanutention_type` varchar(120) NOT NULL DEFAULT '',
`cl_scmanutention_subtype` varchar(120) NOT NULL DEFAULT '',
`cl_scmanutention_description` text DEFAULT NULL,
`cl_scmanutention_share_token` varchar(64) NOT NULL,
`cl_scmanutention_share_enabled` tinyint(1) NOT NULL DEFAULT 0,
`cl_scmanutention_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`cl_scmanutention_updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`cl_scmanutention_id`),
UNIQUE KEY `uq_scmanutention_share_token` (`cl_scmanutention_share_token`),
KEY `idx_scmanutention_owner` (`cl_scmanutention_owner_auth_id`),
KEY `idx_scmanutention_title` (`cl_scmanutention_title`),
CONSTRAINT `fk_scmanutention_owner_auth` FOREIGN KEY (`cl_scmanutention_owner_auth_id`) REFERENCES `tbl_auth` (`cl_auth_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scmining`
--
DROP TABLE IF EXISTS `tbl_scmining`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -93,6 +266,11 @@ CREATE TABLE `tbl_scmining` (
CONSTRAINT `fk_scmining_obj` FOREIGN KEY (`cl_scmining_obj_id`) REFERENCES `tbl_scobjs` (`cl_scobjs_id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scnotifications`
--
DROP TABLE IF EXISTS `tbl_scnotifications`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -114,6 +292,11 @@ CREATE TABLE `tbl_scnotifications` (
CONSTRAINT `fk_scnotification_webhook` FOREIGN KEY (`cl_scnotification_webhook_id`) REFERENCES `tbl_scwebhooks` (`cl_scwebhook_id`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scobjs`
--
DROP TABLE IF EXISTS `tbl_scobjs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -128,8 +311,13 @@ CREATE TABLE `tbl_scobjs` (
`cl_scobjs_description` text DEFAULT NULL,
PRIMARY KEY (`cl_scobjs_id`),
UNIQUE KEY `cl_scobjs_uuid` (`cl_scobjs_uuid`)
) ENGINE=InnoDB AUTO_INCREMENT=18305 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
) ENGINE=InnoDB AUTO_INCREMENT=18306 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scpreset`
--
DROP TABLE IF EXISTS `tbl_scpreset`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -149,6 +337,11 @@ CREATE TABLE `tbl_scpreset` (
CONSTRAINT `fk_scpreset_vaisseau` FOREIGN KEY (`cl_scpreset_vaisseau_id`) REFERENCES `tbl_scvaisseaux` (`cl_scvaisseaux_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scstatsitem`
--
DROP TABLE IF EXISTS `tbl_scstatsitem`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -161,6 +354,11 @@ CREATE TABLE `tbl_scstatsitem` (
UNIQUE KEY `uq_scstatsitem_name` (`cl_scstatsitem_name`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scvaisseaux`
--
DROP TABLE IF EXISTS `tbl_scvaisseaux`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -173,6 +371,11 @@ CREATE TABLE `tbl_scvaisseaux` (
CONSTRAINT `fk_vaisseaux_manufacture` FOREIGN KEY (`cl_scvaisseaux_manufacture_id`) REFERENCES `tbl_scmanufactures` (`cl_scmanufactures_id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tbl_scwebhooks`
--
DROP TABLE IF EXISTS `tbl_scwebhooks`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
@ -196,117 +399,4 @@ CREATE TABLE `tbl_scwebhooks` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
CREATE TABLE IF NOT EXISTS tbl_page_access (
cl_page_access_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
cl_page_key VARCHAR(190) NOT NULL UNIQUE,
cl_page_file VARCHAR(190) NOT NULL UNIQUE,
cl_page_label VARCHAR(190) NOT NULL,
cl_allow_admin TINYINT(1) NOT NULL DEFAULT 1,
cl_allow_moderator TINYINT(1) NOT NULL DEFAULT 0,
cl_allow_member TINYINT(1) NOT NULL DEFAULT 0,
cl_updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS tbl_sccharacters (
cl_sccharacter_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
cl_sccharacter_owner_auth_id INT UNSIGNED NOT NULL,
cl_sccharacter_name VARCHAR(190) NOT NULL,
cl_sccharacter_role VARCHAR(190) NOT NULL DEFAULT '',
cl_sccharacter_faction VARCHAR(190) NOT NULL DEFAULT '',
cl_sccharacter_org_rsi_url VARCHAR(255) NOT NULL DEFAULT '',
cl_sccharacter_player_handle VARCHAR(190) NOT NULL DEFAULT '',
cl_sccharacter_avatar_url VARCHAR(255) NOT NULL DEFAULT '',
cl_sccharacter_description TEXT DEFAULT NULL,
cl_sccharacter_notes TEXT DEFAULT NULL,
cl_sccharacter_share_token VARCHAR(64) NOT NULL,
cl_sccharacter_share_enabled TINYINT(1) NOT NULL DEFAULT 0,
cl_sccharacter_created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
cl_sccharacter_updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uq_sccharacter_share_token (cl_sccharacter_share_token),
KEY idx_sccharacter_owner (cl_sccharacter_owner_auth_id),
KEY idx_sccharacter_name (cl_sccharacter_name),
CONSTRAINT fk_sccharacter_owner_auth FOREIGN KEY (cl_sccharacter_owner_auth_id)
REFERENCES tbl_auth (cl_auth_id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS tbl_sccharacteritems (
cl_sccharacteritem_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
cl_sccharacteritem_character_id INT UNSIGNED NOT NULL,
cl_sccharacteritem_source ENUM('base', 'custom') NOT NULL DEFAULT 'base',
cl_sccharacteritem_scobjs_id INT UNSIGNED DEFAULT NULL,
cl_sccharacteritem_scitemcustom_id INT(11) DEFAULT NULL,
cl_sccharacteritem_slot VARCHAR(120) NOT NULL DEFAULT '',
cl_sccharacteritem_quantity INT UNSIGNED DEFAULT NULL,
cl_sccharacteritem_note TEXT DEFAULT NULL,
cl_sccharacteritem_created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY idx_sccharacteritem_character (cl_sccharacteritem_character_id),
KEY idx_sccharacteritem_scobjs (cl_sccharacteritem_scobjs_id),
KEY idx_sccharacteritem_scitemcustom (cl_sccharacteritem_scitemcustom_id),
CONSTRAINT fk_sccharacteritem_character FOREIGN KEY (cl_sccharacteritem_character_id)
REFERENCES tbl_sccharacters (cl_sccharacter_id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_sccharacteritem_scobjs FOREIGN KEY (cl_sccharacteritem_scobjs_id)
REFERENCES tbl_scobjs (cl_scobjs_id)
ON DELETE SET NULL
ON UPDATE CASCADE,
CONSTRAINT fk_sccharacteritem_scitemcustom FOREIGN KEY (cl_sccharacteritem_scitemcustom_id)
REFERENCES tbl_scitemcustom (cl_scitemcustom_id)
ON DELETE SET NULL
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS tbl_scmanutentions (
cl_scmanutention_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
cl_scmanutention_owner_auth_id INT UNSIGNED NOT NULL,
cl_scmanutention_title VARCHAR(190) NOT NULL,
cl_scmanutention_type VARCHAR(120) NOT NULL DEFAULT '',
cl_scmanutention_subtype VARCHAR(120) NOT NULL DEFAULT '',
cl_scmanutention_description TEXT DEFAULT NULL,
cl_scmanutention_share_token VARCHAR(64) NOT NULL,
cl_scmanutention_share_enabled TINYINT(1) NOT NULL DEFAULT 0,
cl_scmanutention_created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
cl_scmanutention_updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uq_scmanutention_share_token (cl_scmanutention_share_token),
KEY idx_scmanutention_owner (cl_scmanutention_owner_auth_id),
KEY idx_scmanutention_title (cl_scmanutention_title),
CONSTRAINT fk_scmanutention_owner_auth FOREIGN KEY (cl_scmanutention_owner_auth_id)
REFERENCES tbl_auth (cl_auth_id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS tbl_scmanutentionitems (
cl_scmanutentionitem_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
cl_scmanutentionitem_manutention_id INT UNSIGNED NOT NULL,
cl_scmanutentionitem_source ENUM('base', 'custom') NOT NULL DEFAULT 'base',
cl_scmanutentionitem_scobjs_id INT UNSIGNED DEFAULT NULL,
cl_scmanutentionitem_scitemcustom_id INT(11) DEFAULT NULL,
cl_scmanutentionitem_quantity INT UNSIGNED NOT NULL DEFAULT 1,
cl_scmanutentionitem_extra_info TEXT DEFAULT NULL,
cl_scmanutentionitem_sort_order INT UNSIGNED NOT NULL DEFAULT 0,
cl_scmanutentionitem_created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
cl_scmanutentionitem_updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY idx_scmanutentionitem_sheet (cl_scmanutentionitem_manutention_id),
KEY idx_scmanutentionitem_scobjs (cl_scmanutentionitem_scobjs_id),
KEY idx_scmanutentionitem_scitemcustom (cl_scmanutentionitem_scitemcustom_id),
KEY idx_scmanutentionitem_sheet_sort (cl_scmanutentionitem_manutention_id, cl_scmanutentionitem_sort_order, cl_scmanutentionitem_id),
CONSTRAINT fk_scmanutentionitem_sheet FOREIGN KEY (cl_scmanutentionitem_manutention_id)
REFERENCES tbl_scmanutentions (cl_scmanutention_id)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_scmanutentionitem_scobjs FOREIGN KEY (cl_scmanutentionitem_scobjs_id)
REFERENCES tbl_scobjs (cl_scobjs_id)
ON DELETE SET NULL
ON UPDATE CASCADE,
CONSTRAINT fk_scmanutentionitem_scitemcustom FOREIGN KEY (cl_scmanutentionitem_scitemcustom_id)
REFERENCES tbl_scitemcustom (cl_scitemcustom_id)
ON DELETE SET NULL
ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Dump completed on 2026-05-07 0:10:56

View File

@ -949,12 +949,14 @@ $page_access_widget = auth_render_page_access_widget('scmanutention.php', 'Manut
padding: 0.95rem;
display: grid;
gap: 0.8rem;
position: relative;
isolation: isolate;
}
.item-head {
display: flex;
gap: 0.9rem;
align-items: start;
justify-content: space-between;
}
.item-title-line {
@ -978,27 +980,98 @@ $page_access_widget = auth_render_page_access_widget('scmanutention.php', 'Manut
border: 1px solid rgba(255,255,255,0.07);
color: var(--text-main);
}
.item-actions {
display: flex;
gap: 0.6rem;
gap: 0.55rem;
flex-wrap: wrap;
align-items: center;
align-items: flex-start;
justify-content: flex-end;
margin-left: auto;
flex: none;
position: relative;
}
details.item-edit {
border-top: 1px solid rgba(255,255,255,0.08);
padding-top: 0.8rem;
position: relative;
flex: none;
}
details.item-edit summary {
cursor: pointer;
color: #fff2ca;
font-weight: 700;
details.item-edit summary.item-edit-toggle {
list-style: none;
white-space: nowrap;
position: relative;
z-index: 2;
}
details.item-edit summary::-webkit-details-marker { display: none; }
details.item-edit summary.item-edit-toggle::-webkit-details-marker { display: none; }
details.item-edit[open] summary.item-edit-toggle {
background: var(--primary);
color: #111;
box-shadow: 0 0 15px rgba(162, 155, 120, 0.35);
}
.item-edit-backdrop {
display: none;
}
details.item-edit[open] .item-edit-backdrop {
display: block;
position: fixed;
inset: 0;
z-index: 10000;
background: rgba(6, 10, 18, 0.78);
backdrop-filter: blur(3px);
}
.item-edit-panel {
display: none;
}
details.item-edit[open] .item-edit-panel {
display: block;
position: fixed;
top: 50%;
left: 50%;
right: auto;
transform: translate(-50%, -50%);
z-index: 10001;
width: min(860px, calc(100vw - 2rem));
max-height: calc(100vh - 2rem);
overflow-y: auto;
padding: 1rem;
border-radius: 18px;
background: rgba(11, 16, 26, 0.985);
border: 1px solid rgba(255,255,255,0.10);
box-shadow: 0 28px 64px rgba(0,0,0,0.52);
backdrop-filter: blur(10px);
}
.item-edit-panel-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 0.8rem;
margin-bottom: 0.95rem;
}
.item-edit-panel-title {
display: grid;
gap: 0.28rem;
}
.item-edit-panel-title strong {
font-size: 1rem;
color: var(--text-main);
}
.item-edit-panel form {
margin: 0;
}
body.item-edit-open {
overflow: hidden;
}
.stats-list {
gap: 0.5rem;
@ -1050,13 +1123,32 @@ $page_access_widget = auth_render_page_access_widget('scmanutention.php', 'Manut
justify-content: flex-start;
max-width: 100%;
}
.picker-selection,
.item-head,
.hero-title-row,
.admin-topbar {
align-items: stretch;
}
.item-head {
align-items: stretch;
flex-direction: column;
}
.item-actions {
width: 100%;
justify-content: flex-end;
}
details.item-edit[open] .item-edit-panel {
width: min(100vw - 1rem, 860px);
max-height: calc(100vh - 1rem);
padding: 0.9rem;
}
.item-edit-panel-head {
align-items: stretch;
flex-direction: column;
}
}
</style>
</head>
@ -1356,91 +1448,96 @@ $page_access_widget = auth_render_page_access_widget('scmanutention.php', 'Manut
<input type="hidden" name="item_id" value="<?php echo $item_id; ?>">
<button type="submit" class="btn btn-danger btn-small">Supprimer</button>
</form>
</div>
</div>
<?php if (!empty($item_row['cl_scmanutentionitem_extra_info'])): ?>
<div class="item-extra"><?php echo nl2br(htmlspecialchars((string) $item_row['cl_scmanutentionitem_extra_info'], ENT_QUOTES, 'UTF-8')); ?></div>
<?php endif; ?>
<details class="item-edit" data-item-edit>
<summary class="btn btn-secondary btn-small item-edit-toggle">Modifier</summary>
<div class="item-edit-backdrop" data-item-edit-close aria-hidden="true"></div>
<div class="item-edit-panel" role="dialog" aria-modal="true" aria-label="Modifier <?php echo htmlspecialchars($item_name, ENT_QUOTES, 'UTF-8'); ?>">
<div class="item-edit-panel-head">
<div class="item-edit-panel-title">
<strong>Modifier lobjet</strong>
<span class="item-submeta"><?php echo htmlspecialchars($item_name, ENT_QUOTES, 'UTF-8'); ?></span>
</div>
<button type="button" class="btn btn-secondary btn-small" data-item-edit-close>Fermer</button>
</div>
<form method="post">
<input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($csrf_token, ENT_QUOTES, 'UTF-8'); ?>">
<input type="hidden" name="action" value="update_item">
<input type="hidden" name="item_id" value="<?php echo $item_id; ?>">
<details class="item-edit">
<summary>Modifier la ligne</summary>
<form method="post" style="margin-top:0.9rem;">
<input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($csrf_token, ENT_QUOTES, 'UTF-8'); ?>">
<input type="hidden" name="action" value="update_item">
<input type="hidden" name="item_id" value="<?php echo $item_id; ?>">
<div
class="picker"
data-item-picker-root
data-endpoint="scmanutention.php?ajax=item_suggestions"
data-min-query="2"
data-initial-source="<?php echo htmlspecialchars($item_source, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-scobjs="<?php echo $item_scobjs_id; ?>"
data-initial-scitemcustom="<?php echo $item_scitemcustom_id; ?>"
data-initial-name="<?php echo htmlspecialchars($item_name, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-type="<?php echo htmlspecialchars($item_type, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-subtype="<?php echo htmlspecialchars($item_subtype, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-uuid="<?php echo htmlspecialchars($item_uuid, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-rarity="<?php echo htmlspecialchars($item_rarity, ENT_QUOTES, 'UTF-8'); ?>"
>
<input type="hidden" name="item_source" data-picker-source value="<?php echo htmlspecialchars($item_source, ENT_QUOTES, 'UTF-8'); ?>">
<input type="hidden" name="item_scobjs_id" data-picker-scobjs value="<?php echo $item_scobjs_id; ?>">
<input type="hidden" name="item_scitemcustom_id" data-picker-scitemcustom value="<?php echo $item_scitemcustom_id; ?>">
<div
class="picker"
data-item-picker-root
data-endpoint="scmanutention.php?ajax=item_suggestions"
data-min-query="2"
data-initial-source="<?php echo htmlspecialchars($item_source, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-scobjs="<?php echo $item_scobjs_id; ?>"
data-initial-scitemcustom="<?php echo $item_scitemcustom_id; ?>"
data-initial-name="<?php echo htmlspecialchars($item_name, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-type="<?php echo htmlspecialchars($item_type, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-subtype="<?php echo htmlspecialchars($item_subtype, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-uuid="<?php echo htmlspecialchars($item_uuid, ENT_QUOTES, 'UTF-8'); ?>"
data-initial-rarity="<?php echo htmlspecialchars($item_rarity, ENT_QUOTES, 'UTF-8'); ?>"
>
<input type="hidden" name="item_source" data-picker-source value="<?php echo htmlspecialchars($item_source, ENT_QUOTES, 'UTF-8'); ?>">
<input type="hidden" name="item_scobjs_id" data-picker-scobjs value="<?php echo $item_scobjs_id; ?>">
<input type="hidden" name="item_scitemcustom_id" data-picker-scitemcustom value="<?php echo $item_scitemcustom_id; ?>">
<div class="picker-wrap">
<input
type="search"
class="picker-input"
placeholder="Modifier lobjet..."
aria-label="Modifier lobjet"
autocomplete="off"
spellcheck="false"
data-picker-input
value="<?php echo htmlspecialchars($item_name, ENT_QUOTES, 'UTF-8'); ?>"
>
<div class="picker-dropdown hidden" data-picker-dropdown></div>
</div>
<div class="picker-wrap">
<input
type="search"
class="picker-input"
placeholder="Modifier lobjet..."
aria-label="Modifier lobjet"
autocomplete="off"
spellcheck="false"
data-picker-input
value="<?php echo htmlspecialchars($item_name, ENT_QUOTES, 'UTF-8'); ?>"
>
<div class="picker-dropdown hidden" data-picker-dropdown></div>
</div>
<div class="picker-selection" data-picker-selection>
<div class="picker-selection-main">
<img src="<?php echo $item_uuid !== '' ? 'https://cstone.space/uifimages/' . htmlspecialchars($item_uuid, ENT_QUOTES, 'UTF-8') . '.png' : ''; ?>" alt="" class="item-preview<?php echo $item_uuid !== '' ? '' : ' hidden'; ?>" data-picker-image>
<div class="picker-item-text">
<strong class="item-name <?php echo htmlspecialchars($item_rarity_class, ENT_QUOTES, 'UTF-8'); ?>" data-picker-name><?php echo htmlspecialchars($item_name, ENT_QUOTES, 'UTF-8'); ?></strong>
<div class="item-submeta" data-picker-meta>
<?php
$meta_parts = [];
if ($item_type !== '') {
$meta_parts[] = $item_type;
}
if ($item_subtype !== '') {
$meta_parts[] = $item_subtype;
}
$meta_parts[] = $item_source === 'custom' ? 'Objet perso' : 'Base d\'objets';
echo htmlspecialchars(implode(' / ', $meta_parts), ENT_QUOTES, 'UTF-8');
?>
<div class="picker-selection" data-picker-selection>
<div class="picker-selection-main">
<img src="<?php echo $item_uuid !== '' ? 'https://cstone.space/uifimages/' . htmlspecialchars($item_uuid, ENT_QUOTES, 'UTF-8') . '.png' : ''; ?>" alt="" class="item-preview<?php echo $item_uuid !== '' ? '' : ' hidden'; ?>" data-picker-image>
<div class="picker-item-text">
<strong class="item-name <?php echo htmlspecialchars($item_rarity_class, ENT_QUOTES, 'UTF-8'); ?>" data-picker-name><?php echo htmlspecialchars($item_name, ENT_QUOTES, 'UTF-8'); ?></strong>
<div class="item-submeta" data-picker-meta>
<?php
$meta_parts = [];
if ($item_type !== '') {
$meta_parts[] = $item_type;
}
if ($item_subtype !== '') {
$meta_parts[] = $item_subtype;
}
$meta_parts[] = $item_source === 'custom' ? 'Objet perso' : 'Base d\'objets';
echo htmlspecialchars(implode(' / ', $meta_parts), ENT_QUOTES, 'UTF-8');
?>
</div>
</div>
</div>
<button type="button" class="btn btn-danger btn-small" data-picker-clear>Effacer</button>
</div>
</div>
</div>
<button type="button" class="btn btn-danger btn-small" data-picker-clear>Effacer</button>
</div>
</div>
<div class="form-grid" style="margin-top:0.95rem;">
<div class="field">
<label>Quantité</label>
<input class="input" type="number" min="1" max="999999" name="quantity" value="<?php echo (int) ($item_row['cl_scmanutentionitem_quantity'] ?? 1); ?>">
<div class="form-grid" style="margin-top:0.95rem;">
<div class="field">
<label>Quantité</label>
<input class="input" type="number" min="1" max="999999" name="quantity" value="<?php echo (int) ($item_row['cl_scmanutentionitem_quantity'] ?? 1); ?>">
</div>
<div class="field">
<label>Info supplémentaire</label>
<input class="input" type="text" name="extra_info" value="<?php echo htmlspecialchars((string) ($item_row['cl_scmanutentionitem_extra_info'] ?? ''), ENT_QUOTES, 'UTF-8'); ?>" placeholder="Case libre facultative">
</div>
</div>
<div class="btn-row">
<button type="submit" class="btn" data-picker-submit>Enregistrer les modifications</button>
</div>
</form>
</div>
<div class="field">
<label>Info supplémentaire</label>
<input class="input" type="text" name="extra_info" value="<?php echo htmlspecialchars((string) ($item_row['cl_scmanutentionitem_extra_info'] ?? ''), ENT_QUOTES, 'UTF-8'); ?>" placeholder="Case libre facultative">
</div>
</div>
<div class="btn-row">
<button type="submit" class="btn" data-picker-submit>Enregistrer les modifications</button>
</div>
</form>
</details>
</details>
</div>
</article>
<?php endforeach; ?>
</div>
@ -1767,7 +1864,52 @@ $page_access_widget = auth_render_page_access_widget('scmanutention.php', 'Manut
}
}
function syncItemEditState() {
document.body.classList.toggle('item-edit-open', !!document.querySelector('details.item-edit[open]'));
}
Array.prototype.slice.call(document.querySelectorAll('details.item-edit')).forEach(function (detailsNode) {
detailsNode.addEventListener('toggle', function () {
if (detailsNode.open) {
Array.prototype.slice.call(document.querySelectorAll('details.item-edit[open]')).forEach(function (otherNode) {
if (otherNode !== detailsNode) {
otherNode.open = false;
}
});
}
syncItemEditState();
});
});
document.addEventListener('click', function (event) {
var closeTrigger = event.target.closest('[data-item-edit-close]');
if (!closeTrigger) {
return;
}
var detailsNode = closeTrigger.closest('details.item-edit');
if (!detailsNode) {
return;
}
detailsNode.open = false;
syncItemEditState();
});
document.addEventListener('keydown', function (event) {
if (event.key !== 'Escape') {
return;
}
Array.prototype.slice.call(document.querySelectorAll('details.item-edit[open]')).forEach(function (detailsNode) {
detailsNode.open = false;
});
syncItemEditState();
});
Array.prototype.slice.call(document.querySelectorAll('[data-item-picker-root]')).forEach(initPicker);
syncItemEditState();
});
</script>
</body>