- Corrige l'erreur SQL 'Unknown column fk_operation in users' - L'opération active est récupérée depuis operations.chk_active = 1 - Jointure avec users pour filtrer par entité de l'admin créateur - Query: SELECT o.id FROM operations o INNER JOIN users u ON u.fk_entite = o.fk_entite WHERE u.id = ? AND o.chk_active = 1
54 lines
2.8 KiB
SQL
Executable File
54 lines
2.8 KiB
SQL
Executable File
-- Table pour stocker les informations des devices des utilisateurs
|
|
CREATE TABLE IF NOT EXISTS `user_devices` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`fk_user` int(10) unsigned NOT NULL COMMENT 'Référence vers la table users',
|
|
|
|
-- Informations générales du device
|
|
`platform` varchar(20) NOT NULL COMMENT 'Plateforme: iOS, Android, etc.',
|
|
`device_model` varchar(100) DEFAULT NULL COMMENT 'Modèle du device (ex: iPhone13,2)',
|
|
`device_name` varchar(255) DEFAULT NULL COMMENT 'Nom personnalisé du device',
|
|
`device_manufacturer` varchar(100) DEFAULT NULL COMMENT 'Fabricant (Apple, Samsung, etc.)',
|
|
`device_identifier` varchar(100) DEFAULT NULL COMMENT 'Identifiant unique du device',
|
|
|
|
-- Informations réseau (IPv4 uniquement)
|
|
`device_ip_local` varchar(15) DEFAULT NULL COMMENT 'Adresse IP locale IPv4',
|
|
`device_ip_public` varchar(15) DEFAULT NULL COMMENT 'Adresse IP publique IPv4',
|
|
`device_wifi_name` varchar(255) DEFAULT NULL COMMENT 'Nom du réseau WiFi (SSID)',
|
|
`device_wifi_bssid` varchar(17) DEFAULT NULL COMMENT 'BSSID du point d\'accès (format
|
|
XX:XX:XX:XX:XX:XX)',
|
|
|
|
-- Capacités et version OS
|
|
`ios_version` varchar(20) DEFAULT NULL COMMENT 'Version iOS/Android OS',
|
|
`device_nfc_capable` tinyint(1) DEFAULT NULL COMMENT 'Support NFC (1=oui, 0=non)',
|
|
`device_supports_tap_to_pay` tinyint(1) DEFAULT NULL COMMENT 'Support Tap to Pay (1=oui, 0=non)',
|
|
|
|
-- État batterie
|
|
`battery_level` tinyint(3) unsigned DEFAULT NULL COMMENT 'Niveau batterie en pourcentage (0-100)',
|
|
`battery_charging` tinyint(1) DEFAULT NULL COMMENT 'En charge (1=oui, 0=non)',
|
|
`battery_state` varchar(20) DEFAULT NULL COMMENT 'État batterie (charging, discharging, full)',
|
|
|
|
-- Versions application
|
|
`app_version` varchar(20) DEFAULT NULL COMMENT 'Version de l\'application (ex: 3.2.8)',
|
|
`app_build` varchar(20) DEFAULT NULL COMMENT 'Numéro de build (ex: 328)',
|
|
|
|
-- Timestamps
|
|
`last_device_info_check` timestamp NULL DEFAULT NULL COMMENT 'Dernier check des infos device côté
|
|
app',
|
|
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Date de création de
|
|
l\'enregistrement',
|
|
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT
|
|
'Date de dernière modification',
|
|
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_fk_user` (`fk_user`) COMMENT 'Index pour recherche par utilisateur',
|
|
KEY `idx_updated_at` (`updated_at`) COMMENT 'Index pour tri par date de mise à jour',
|
|
KEY `idx_last_check` (`last_device_info_check`) COMMENT 'Index pour recherche par dernière
|
|
vérification',
|
|
UNIQUE KEY `unique_user_device` (`fk_user`, `device_identifier`) COMMENT 'Un seul enregistrement
|
|
par device/user',
|
|
|
|
CONSTRAINT `fk_user_devices_user` FOREIGN KEY (`fk_user`)
|
|
REFERENCES `users` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Informations des devices
|
|
utilisateurs';
|