-- Execute Production Data Import
-- Date: 2025-11-13
-- This script actually performs the import of production data

USE shopdb;

-- ==============================================================================
-- STEP 1: Create backup tables
-- ==============================================================================

DROP TABLE IF EXISTS `notifications_backup_20251113`;
CREATE TABLE `notifications_backup_20251113` LIKE `notifications`;
INSERT INTO `notifications_backup_20251113` SELECT * FROM `notifications`;

DROP TABLE IF EXISTS `notificationtypes_backup_20251113`;
CREATE TABLE `notificationtypes_backup_20251113` LIKE `notificationtypes`;
INSERT INTO `notificationtypes_backup_20251113` SELECT * FROM `notificationtypes`;

DROP TABLE IF EXISTS `printers_backup_20251113`;
CREATE TABLE `printers_backup_20251113` LIKE `printers`;
INSERT INTO `printers_backup_20251113` SELECT * FROM `printers`;

DROP TABLE IF EXISTS `knowledgebase_backup_20251113`;
CREATE TABLE `knowledgebase_backup_20251113` LIKE `knowledgebase`;
INSERT INTO `knowledgebase_backup_20251113` SELECT * FROM `knowledgebase`;

SELECT 'Backup tables created successfully' AS status;

-- ==============================================================================
-- STEP 2: Show current counts
-- ==============================================================================

SELECT '=== BEFORE IMPORT ===' AS '';
SELECT
    (SELECT COUNT(*) FROM notifications) AS notifications_before,
    (SELECT COUNT(*) FROM notificationtypes) AS notificationtypes_before,
    (SELECT COUNT(*) FROM printers) AS printers_before,
    (SELECT COUNT(*) FROM knowledgebase) AS knowledgebase_before;

-- ==============================================================================
-- STEP 3: Disable foreign key checks and clear tables
-- ==============================================================================

SET FOREIGN_KEY_CHECKS = 0;
SET AUTOCOMMIT = 0;

-- ==============================================================================
-- STEP 4: Import Notification Types
-- ==============================================================================

DELETE FROM `notificationtypes`;
SOURCE /home/camp/projects/windows/shopdb/sql/prod_notificationtypes.sql;
SELECT 'Notification types imported' AS status;

-- ==============================================================================
-- STEP 5: Import Notifications
-- ==============================================================================

DELETE FROM `notifications`;
SOURCE /home/camp/projects/windows/shopdb/sql/prod_notifications.sql;
SELECT 'Notifications imported' AS status;

-- ==============================================================================
-- STEP 6: Import Printers
-- ==============================================================================

DELETE FROM `printers`;
SOURCE /home/camp/projects/windows/shopdb/sql/prod_printers.sql;
SELECT 'Printers imported' AS status;

-- ==============================================================================
-- STEP 7: Import Knowledgebase
-- ==============================================================================

DELETE FROM `knowledgebase`;
SOURCE /home/camp/projects/windows/shopdb/sql/prod_knowledgebase.sql;
SELECT 'Knowledgebase articles imported' AS status;

-- ==============================================================================
-- STEP 8: Re-enable constraints and commit
-- ==============================================================================

COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
SET AUTOCOMMIT = 1;

-- ==============================================================================
-- STEP 9: Verify imported data
-- ==============================================================================

SELECT '=== AFTER IMPORT ===' AS '';
SELECT
    (SELECT COUNT(*) FROM notifications) AS notifications_after,
    (SELECT COUNT(*) FROM notificationtypes) AS notificationtypes_after,
    (SELECT COUNT(*) FROM printers) AS printers_after,
    (SELECT COUNT(*) FROM knowledgebase) AS knowledgebase_after;

-- ==============================================================================
-- STEP 10: Show sample imported data
-- ==============================================================================

SELECT '=== Notification Types ===' AS '';
SELECT notificationtypeid, typename, typedescription, typecolor, isactive
FROM notificationtypes
ORDER BY notificationtypeid;

SELECT '=== Recent Active Notifications ===' AS '';
SELECT notificationid, notificationtypeid, notification, starttime, endtime, ticketnumber, isactive
FROM notifications
WHERE isactive = 1
ORDER BY starttime DESC
LIMIT 10;

SELECT '=== Active Printers ===' AS '';
SELECT printerid, printerwindowsname, ipaddress, serialnumber, isactive, iscsf
FROM printers
WHERE isactive = 1
LIMIT 15;

SELECT '=== Top Knowledge Base Articles ===' AS '';
SELECT linkid, shortdescription, keywords, clicks, isactive
FROM knowledgebase
WHERE isactive = 1
ORDER BY clicks DESC
LIMIT 10;

-- ==============================================================================
-- SUCCESS MESSAGE
-- ==============================================================================

SELECT '========================================' AS '';
SELECT 'IMPORT SUCCESSFUL!' AS status;
SELECT 'Backup tables created with _backup_20251113 suffix' AS info;
SELECT 'To rollback, see rollback instructions in import_prod_data.sql' AS rollback_info;
SELECT '========================================' AS '';
