269 lines
16 KiB
SQL
269 lines
16 KiB
SQL
-- --------------------------------------------------------
|
|
-- Host: 127.0.0.1
|
|
-- Server version: 8.0.30 - MySQL Community Server - GPL
|
|
-- Server OS: Win64
|
|
-- HeidiSQL Version: 12.3.0.6589
|
|
-- --------------------------------------------------------
|
|
|
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
/*!40101 SET NAMES utf8 */;
|
|
/*!50503 SET NAMES utf8mb4 */;
|
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
|
/*!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 */;
|
|
|
|
-- Dumping structure for table store.store_categories
|
|
CREATE TABLE IF NOT EXISTS `store_categories` (
|
|
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(765) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
`icon` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
|
|
`requiredRank` int DEFAULT NULL,
|
|
`flags` int unsigned NOT NULL DEFAULT '0',
|
|
`enabled` int unsigned NOT NULL DEFAULT '1',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Dumping data for table store.store_categories: ~9 rows (approximately)
|
|
INSERT INTO `store_categories` (`id`, `name`, `icon`, `requiredRank`, `flags`, `enabled`) VALUES
|
|
(1, 'Рекомендуем', 'inv_helmet_96', 0, 2, 1),
|
|
(2, 'Титулы', 'inv_scroll_11', 0, 0, 1),
|
|
(3, 'Предметы', 'ability_warrior_challange', 0, 0, 1),
|
|
(4, 'Транспорт и питомцы', 'inv_box_petcarrier_01', 0, 0, 1),
|
|
(5, 'Усиления', 'spell_holy_surgeoflight', 0, 0, 1),
|
|
(6, 'Услуги', 'vas_charactertransfer', 0, 0, 1),
|
|
(7, 'Эффекты', 'spell_holy_holynova', 0, 0, 1),
|
|
(8, 'Распродажа', 'inv_misc_toy_07', 0, 1, 1),
|
|
(9, 'VIP', 'inv_misc_note_03', 4, 0, 1);
|
|
|
|
UPDATE `store_categories` SET `name` = CASE `id`
|
|
WHEN 1 THEN 'Рекомендуем' WHEN 2 THEN 'Титулы' WHEN 3 THEN 'Предметы'
|
|
WHEN 4 THEN 'Транспорт и питомцы' WHEN 5 THEN 'Усиления' WHEN 6 THEN 'Услуги'
|
|
WHEN 7 THEN 'Эффекты' WHEN 8 THEN 'Распродажа' WHEN 9 THEN 'VIP'
|
|
ELSE `name` END
|
|
WHERE `id` BETWEEN 1 AND 9;
|
|
|
|
-- Dumping structure for table store.store_category_service_link
|
|
CREATE TABLE IF NOT EXISTS `store_category_service_link` (
|
|
`category` int unsigned NOT NULL,
|
|
`service` int unsigned NOT NULL,
|
|
PRIMARY KEY (`category`,`service`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Dumping data for table store.store_category_service_link: ~14 rows (approximately)
|
|
INSERT INTO `store_category_service_link` (`category`, `service`) VALUES
|
|
(2, 16),
|
|
(3, 5),
|
|
(3, 12),
|
|
(3, 18),
|
|
(4, 8),
|
|
(4, 13),
|
|
(5, 1),
|
|
(5, 14),
|
|
(5, 17),
|
|
(6, 2),
|
|
(6, 3),
|
|
(6, 4),
|
|
(7, 15);
|
|
|
|
-- Dumping structure for table store.store_currencies
|
|
CREATE TABLE IF NOT EXISTS `store_currencies` (
|
|
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
|
`type` int unsigned NOT NULL DEFAULT '1',
|
|
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
|
`icon` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
|
`data` int NOT NULL DEFAULT '0',
|
|
`tooltip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Dumping data for table store.store_currencies: ~2 rows (approximately)
|
|
INSERT INTO `store_currencies` (`id`, `type`, `name`, `icon`, `data`, `tooltip`) VALUES
|
|
(1, 3, 'Баланс', 'Gold', 0, 'Баланс учётной записи на сайте.');
|
|
|
|
-- The website account balance is the only in-game store currency. These
|
|
-- statements also migrate databases bootstrapped by an older Store.sql.
|
|
UPDATE `store_currencies`
|
|
SET `type` = 3, `name` = 'Баланс', `icon` = 'Gold', `data` = 0,
|
|
`tooltip` = 'Баланс учётной записи на сайте.'
|
|
WHERE `id` = 1;
|
|
DELETE FROM `store_currencies` WHERE `id` <> 1;
|
|
|
|
-- Dumping structure for table store.store_logs
|
|
CREATE TABLE IF NOT EXISTS `store_logs` (
|
|
`account` int DEFAULT NULL,
|
|
`guid` int DEFAULT NULL,
|
|
`serviceId` int DEFAULT NULL,
|
|
`currencyId` int DEFAULT NULL,
|
|
`cost` int DEFAULT NULL,
|
|
`time` timestamp NULL DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Dumping data for table store.store_logs: ~29 rows (approximately)
|
|
INSERT INTO `store_logs` (`account`, `guid`, `serviceId`, `currencyId`, `cost`, `time`) VALUES
|
|
(1, 1, 12, 1, 10, '2023-04-07 03:03:06'),
|
|
(1, 1, 12, 1, 5, '2023-04-07 03:04:23'),
|
|
(1, 1, 13, 1, 10, '2023-04-07 03:20:42'),
|
|
(1, 1, 8, 1, 30, '2023-04-07 03:25:36'),
|
|
(1, 1, 12, 2, 5, '2023-04-07 20:04:22'),
|
|
(1, 1, 12, 2, 5, '2023-04-07 20:07:47'),
|
|
(1, 1, 12, 2, 5, '2023-04-07 20:07:50'),
|
|
(1, 1, 12, 2, 5, '2023-04-07 20:10:04'),
|
|
(1, 1, 12, 2, 5, '2023-04-07 20:21:48'),
|
|
(1, 1, 12, 2, 5, '2023-04-07 20:22:01'),
|
|
(1, 1, 12, 2, 5, '2023-04-07 20:22:38'),
|
|
(1, 1, 12, 2, 5, '2023-04-07 20:23:45'),
|
|
(1, 1, 12, 2, 5, '2023-04-07 20:26:19'),
|
|
(1, 1, 13, 1, 10, '2023-04-08 01:14:35'),
|
|
(1, 1, 1, 1, 10, '2023-04-08 01:22:52'),
|
|
(1, 1, 1, 1, 10, '2023-04-08 01:24:07'),
|
|
(1, 1, 1, 1, 10, '2023-04-08 01:25:51'),
|
|
(1, 1, 4, 1, 5, '2023-04-08 01:35:36'),
|
|
(1, 1, 16, 1, 10, '2023-04-08 01:41:41'),
|
|
(1, 1, 16, 1, 10, '2023-04-08 01:44:49'),
|
|
(1, 1, 5, 1, 10, '2023-04-08 04:45:17'),
|
|
(1, 1, 1, 1, 10, '2023-04-08 19:50:20'),
|
|
(1, 1, 1, 1, 10, '2023-04-08 19:51:13'),
|
|
(1, 1, 12, 1, 5, '2023-04-08 19:52:20'),
|
|
(1, 1, 12, 1, 5, '2023-04-08 19:55:03'),
|
|
(1, 1, 12, 1, 5, '2023-04-08 22:23:33'),
|
|
(1, 1, 12, 1, 5, '2023-04-08 23:19:16'),
|
|
(1, 1, 1, 1, 10, '2023-04-09 02:02:07'),
|
|
(1, 1, 1, 2, 10, '2023-04-09 02:06:11'),
|
|
(1, 1, 5, 1, 10, '2023-04-09 02:34:41'),
|
|
(1, 1, 15, 1, 1, '2023-04-09 03:01:37'),
|
|
(1, 1, 18, 1, 50, '2023-04-09 03:29:32');
|
|
|
|
-- Dumping structure for table store.store_services
|
|
CREATE TABLE IF NOT EXISTS `store_services` (
|
|
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
|
`type` int unsigned DEFAULT NULL,
|
|
`name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
|
|
`tooltipName` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
|
|
`tooltipType` varchar(765) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
`tooltipText` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
|
|
`icon` varchar(765) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
|
|
`price` int DEFAULT NULL,
|
|
`currency` int DEFAULT NULL,
|
|
`hyperlinkId` int DEFAULT NULL,
|
|
`creatureEntry` int DEFAULT NULL,
|
|
`discountAmount` int DEFAULT NULL,
|
|
`flags` int DEFAULT NULL,
|
|
`reward_1` int unsigned DEFAULT NULL,
|
|
`reward_2` int unsigned DEFAULT NULL,
|
|
`reward_3` int unsigned DEFAULT NULL,
|
|
`reward_4` int unsigned DEFAULT NULL,
|
|
`reward_5` int unsigned DEFAULT NULL,
|
|
`reward_6` int unsigned DEFAULT NULL,
|
|
`reward_7` int unsigned DEFAULT NULL,
|
|
`reward_8` int unsigned DEFAULT NULL,
|
|
`rewardcount_1` int unsigned DEFAULT NULL,
|
|
`rewardcount_2` int unsigned DEFAULT NULL,
|
|
`rewardcount_3` int unsigned DEFAULT NULL,
|
|
`rewardcount_4` int unsigned DEFAULT NULL,
|
|
`rewardcount_5` int unsigned DEFAULT NULL,
|
|
`rewardcount_6` int unsigned DEFAULT NULL,
|
|
`rewardcount_7` int unsigned DEFAULT NULL,
|
|
`rewardcount_8` int unsigned DEFAULT NULL,
|
|
`new` int unsigned NOT NULL DEFAULT '0',
|
|
`enabled` int unsigned DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
|
|
-- Dumping data for table store.store_services: ~13 rows (approximately)
|
|
INSERT INTO `store_services` (`id`, `type`, `name`, `tooltipName`, `tooltipType`, `tooltipText`, `icon`, `price`, `currency`, `hyperlinkId`, `creatureEntry`, `discountAmount`, `flags`, `reward_1`, `reward_2`, `reward_3`, `reward_4`, `reward_5`, `reward_6`, `reward_7`, `reward_8`, `rewardcount_1`, `rewardcount_2`, `rewardcount_3`, `rewardcount_4`, `rewardcount_5`, `rewardcount_6`, `rewardcount_7`, `rewardcount_8`, `new`, `enabled`) VALUES
|
|
(1, 8, 'Повышение уровня\r\n+10 уровней', 'Повышение уровня', '', 'Повышает уровень персонажа на 10.', 'achievement_level_10', 10, 1, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(2, 7, 'Смена фракции', 'Смена фракции', '', 'Позволяет сменить фракцию персонажа. Станет доступно после повторного входа.', 'vas_factionchange', 5, 1, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(3, 7, 'Смена расы', 'Смена расы', '', 'Позволяет сменить расу персонажа. Станет доступно после повторного входа.', 'vas_racechange', 10, 1, 0, 0, 5, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(4, 7, 'Смена имени', 'Смена имени', '', 'Позволяет сменить имя персонажа. Станет доступно после повторного входа.', 'vas_namechange', 5, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(5, 1, 'Игрушечный меч\r\n(двуручный)', '', 'item', '|cff00FFFFНажмите для предпросмотра|r', 'inv_sword_22', 10, 1, 45061, 45061, 0, 1, 45061, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(8, 3, 'Стремительный призрачный тигр\r\n(транспорт)', '', 'spell', '|cff00FFFFНажмите для предпросмотра|r', 'ability_mount_spectraltiger', 30, 1, 42777, 24004, 0, 0, 42777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1),
|
|
(12, 1, 'Эпическая лиловая рубашка', '', 'item', '|cff00FFFFНажмите для предпросмотра|r', 'inv_shirt_purple_01', 10, 1, 45037, 45037, 5, 1, 45037, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(13, 4, 'Луговая курица\r\n(питомец)', '', 'spell', '|cff00FFFFНажмите для предпросмотра|r', 'spell_magic_polymorphchicken', 10, 1, 10686, 7392, 0, 0, 10686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(14, 8, 'Повышение уровня\r\n+20 уровней', 'Повышение уровня', '', 'Повышает уровень персонажа на 20.', 'achievement_level_20', 20, 1, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(15, 5, 'Эффект\r\nБлагословение могущества', 'Эффект', '', 'Накладывает Благословение могущества.', 'spell_holy_fistofjustice', 1, 1, 0, 0, 0, 0, 27140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(16, 9, 'Титул\r\nЗащитник Наару', 'Титул', '', 'Открывает титул «Защитник Наару».', 'inv_mace_51', 10, 1, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1),
|
|
(17, 8, 'Повышение до 60-го уровня', 'Повышение уровня', '', 'Повышает уровень персонажа до 60-го.', 'achievement_level_60', 40, 1, 0, 0, 0, 1, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
|
|
(18, 1, 'Комплект смокинга', 'Комплект смокинга', '', 'Стильный комплект смокинга.\r\n\r\nСодержит:\r\n\r\n1x Куртка-смокинг\r\n1x Рубашка под смокинг\r\n1x Брюки под смокинг', 'inv_shirt_black_01', 50, 1, 0, 0, 0, 1, 10036, 10035, 10034, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1);
|
|
|
|
-- Update visible texts in already initialized databases as well.
|
|
UPDATE `store_services` SET
|
|
`name` = CASE `id`
|
|
WHEN 1 THEN 'Повышение уровня\r\n+10 уровней' WHEN 2 THEN 'Смена фракции'
|
|
WHEN 3 THEN 'Смена расы' WHEN 4 THEN 'Смена имени'
|
|
WHEN 5 THEN 'Игрушечный меч\r\n(двуручный)'
|
|
WHEN 8 THEN 'Стремительный призрачный тигр\r\n(транспорт)'
|
|
WHEN 12 THEN 'Эпическая лиловая рубашка' WHEN 13 THEN 'Луговая курица\r\n(питомец)'
|
|
WHEN 14 THEN 'Повышение уровня\r\n+20 уровней'
|
|
WHEN 15 THEN 'Эффект\r\nБлагословение могущества'
|
|
WHEN 16 THEN 'Титул\r\nЗащитник Наару' WHEN 17 THEN 'Повышение до 60-го уровня'
|
|
WHEN 18 THEN 'Комплект смокинга' ELSE `name` END,
|
|
`tooltipName` = CASE `id`
|
|
WHEN 1 THEN 'Повышение уровня' WHEN 2 THEN 'Смена фракции' WHEN 3 THEN 'Смена расы'
|
|
WHEN 4 THEN 'Смена имени' WHEN 14 THEN 'Повышение уровня' WHEN 15 THEN 'Эффект'
|
|
WHEN 16 THEN 'Титул' WHEN 17 THEN 'Повышение уровня' WHEN 18 THEN 'Комплект смокинга'
|
|
ELSE `tooltipName` END,
|
|
`tooltipText` = CASE `id`
|
|
WHEN 1 THEN 'Повышает уровень персонажа на 10.'
|
|
WHEN 2 THEN 'Позволяет сменить фракцию персонажа. Станет доступно после повторного входа.'
|
|
WHEN 3 THEN 'Позволяет сменить расу персонажа. Станет доступно после повторного входа.'
|
|
WHEN 4 THEN 'Позволяет сменить имя персонажа. Станет доступно после повторного входа.'
|
|
WHEN 5 THEN '|cff00FFFFНажмите для предпросмотра|r'
|
|
WHEN 8 THEN '|cff00FFFFНажмите для предпросмотра|r'
|
|
WHEN 12 THEN '|cff00FFFFНажмите для предпросмотра|r'
|
|
WHEN 13 THEN '|cff00FFFFНажмите для предпросмотра|r'
|
|
WHEN 14 THEN 'Повышает уровень персонажа на 20.'
|
|
WHEN 15 THEN 'Накладывает Благословение могущества.'
|
|
WHEN 16 THEN 'Открывает титул «Защитник Наару».'
|
|
WHEN 17 THEN 'Повышает уровень персонажа до 60-го.'
|
|
WHEN 18 THEN 'Стильный комплект смокинга.\r\n\r\nСодержит:\r\n\r\n1x Куртка-смокинг\r\n1x Рубашка под смокинг\r\n1x Брюки под смокинг'
|
|
ELSE `tooltipText` END
|
|
WHERE `id` IN (1,2,3,4,5,8,12,13,14,15,16,17,18);
|
|
|
|
UPDATE `store_services` SET `currency` = 1;
|
|
|
|
-- Atomic bridge between the website balance and Eluna. It both reserves the
|
|
-- funds and writes the website-compatible ledger entry before a reward is sent.
|
|
DROP FUNCTION IF EXISTS `acore_auth`.`store_deduct_balance`;
|
|
DELIMITER //
|
|
CREATE FUNCTION `acore_auth`.`store_deduct_balance`(
|
|
p_account_id INT UNSIGNED,
|
|
p_amount DECIMAL(14,2),
|
|
p_reference VARCHAR(191),
|
|
p_character_guid INT UNSIGNED,
|
|
p_service_id INT UNSIGNED
|
|
) RETURNS DECIMAL(14,2)
|
|
DETERMINISTIC
|
|
MODIFIES SQL DATA
|
|
BEGIN
|
|
DECLARE v_balance_after DECIMAL(14,2) DEFAULT -1;
|
|
|
|
UPDATE `acore_auth`.`account_balances`
|
|
SET `balance` = `balance` - p_amount, `updated_at` = CURRENT_TIMESTAMP
|
|
WHERE `account_id` = p_account_id
|
|
AND p_amount >= 0
|
|
AND `balance` >= p_amount;
|
|
|
|
IF ROW_COUNT() = 1 THEN
|
|
SELECT `balance` INTO v_balance_after
|
|
FROM `acore_auth`.`account_balances`
|
|
WHERE `account_id` = p_account_id;
|
|
|
|
INSERT INTO `acore_auth`.`balance_transactions`
|
|
(`account_id`, `type`, `amount`, `balance_after`, `reference`, `metadata`, `created_at`)
|
|
VALUES
|
|
(p_account_id, 'store_purchase', -p_amount, v_balance_after, p_reference,
|
|
JSON_OBJECT('character_guid', p_character_guid, 'service_id', p_service_id), CURRENT_TIMESTAMP);
|
|
END IF;
|
|
|
|
RETURN v_balance_after;
|
|
END//
|
|
DELIMITER ;
|
|
|
|
/*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */;
|
|
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
|
|
/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
|
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;
|