005_advanced_pricing.sql 1.5 KB

123456789101112131415161718192021222324252627282930
  1. -- Migration 005: Advanced Pricing (Services and Speed Coefficients)
  2. -- 1. Create services table
  3. CREATE TABLE IF NOT EXISTS `services` (
  4. `id` int(11) NOT NULL AUTO_INCREMENT,
  5. `name_en` varchar(255) NOT NULL,
  6. `name_ru` varchar(255) DEFAULT NULL,
  7. `name_ua` varchar(255) DEFAULT NULL,
  8. `desc_en` text DEFAULT NULL,
  9. `tech_type` varchar(50) DEFAULT 'fdm',
  10. `price_per_hour` decimal(10,2) DEFAULT 0.00,
  11. `is_active` tinyint(1) DEFAULT 1,
  12. `created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
  13. PRIMARY KEY (`id`)
  14. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  15. -- 2. Add price_per_hour, speed_coeff and service_id to materials
  16. -- Plain ALTER TABLE for compatibility with older MySQL versions
  17. ALTER TABLE `materials` ADD COLUMN `price_per_hour` decimal(10,2) DEFAULT NULL;
  18. ALTER TABLE `materials` ADD COLUMN `speed_coeff` decimal(10,2) DEFAULT 1.00;
  19. ALTER TABLE `materials` ADD COLUMN `service_id` int(11) DEFAULT NULL;
  20. -- 3. Initial seed for services if empty
  21. INSERT INTO `services` (`name_en`, `name_ru`, `name_ua`, `tech_type`, `price_per_hour`)
  22. SELECT * FROM (SELECT 'FDM Printing', 'FDM Печать', 'FDM Друк', 'fdm', 2.00) AS tmp
  23. WHERE NOT EXISTS (SELECT 1 FROM `services` WHERE `tech_type` = 'fdm') LIMIT 1;
  24. INSERT INTO `services` (`name_en`, `name_ru`, `name_ua`, `tech_type`, `price_per_hour`)
  25. SELECT * FROM (SELECT 'SLA Printing', 'SLA Печать', 'SLA Друк', 'sla', 5.00) AS tmp
  26. WHERE NOT EXISTS (SELECT 1 FROM `services` WHERE `tech_type` = 'sla') LIMIT 1;