Added per-user coupon maximum usage count

This commit is contained in:
Franck Allimant
2014-05-17 10:20:26 +02:00
parent 9cdac6d50e
commit f8ccea1899
43 changed files with 4506 additions and 152 deletions

View File

@@ -10,4 +10,108 @@ UPDATE `config` SET `value`='' WHERE `name`='thelia_extra_version';
ALTER TABLE `rewriting_url` DROP INDEX `idx_rewriting_url_view_updated_at`;
ALTER TABLE `rewriting_url` DROP INDEX `idx_rewriting_url_view_id_view_view_locale_updated_at`;
# Add coupon country/modules crossref tables
# ------------------------------------------
DROP TABLE IF EXISTS `coupon_country`;
CREATE TABLE `coupon_country`
(
`coupon_id` INTEGER NOT NULL,
`country_id` INTEGER NOT NULL,
PRIMARY KEY (`coupon_id`,`country_id`),
INDEX `fk_country_id_idx` (`country_id`),
CONSTRAINT `fk_coupon_country_country_id`
FOREIGN KEY (`country_id`)
REFERENCES `country` (`id`)
ON DELETE CASCADE,
CONSTRAINT `fk_coupon_country_coupon_id`
FOREIGN KEY (`coupon_id`)
REFERENCES `coupon` (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB;
DROP TABLE IF EXISTS `coupon_module`;
CREATE TABLE `coupon_module`
(
`coupon_id` INTEGER NOT NULL,
`module_id` INTEGER NOT NULL,
PRIMARY KEY (`coupon_id`,`module_id`),
INDEX `fk_module_id_idx` (`module_id`),
CONSTRAINT `fk_coupon_module_coupon_id`
FOREIGN KEY (`coupon_id`)
REFERENCES `coupon` (`id`)
ON DELETE CASCADE,
CONSTRAINT `fk_coupon_module_module_id`
FOREIGN KEY (`module_id`)
REFERENCES `module` (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB;
DROP TABLE IF EXISTS `order_coupon_country`;
CREATE TABLE `order_coupon_country`
(
`coupon_id` INTEGER NOT NULL,
`country_id` INTEGER NOT NULL,
PRIMARY KEY (`coupon_id`,`country_id`),
INDEX `fk_country_id_idx` (`country_id`),
CONSTRAINT `fk_order_coupon_country_country_id`
FOREIGN KEY (`country_id`)
REFERENCES `country` (`id`)
ON DELETE CASCADE,
CONSTRAINT `fk_order_coupon_country_coupon_id`
FOREIGN KEY (`coupon_id`)
REFERENCES `order_coupon` (`id`)
) ENGINE=InnoDB;
DROP TABLE IF EXISTS `order_coupon_module`;
CREATE TABLE `order_coupon_module`
(
`coupon_id` INTEGER NOT NULL,
`module_id` INTEGER NOT NULL,
PRIMARY KEY (`coupon_id`,`module_id`),
INDEX `fk_module_id_idx` (`module_id`),
CONSTRAINT `fk_coupon_module_coupon_id0`
FOREIGN KEY (`coupon_id`)
REFERENCES `order_coupon` (`id`)
ON DELETE CASCADE,
CONSTRAINT `fk_coupon_module_module_id0`
FOREIGN KEY (`module_id`)
REFERENCES `module` (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB;
# Per customer usage count
# ------------------------
# Add new column to coupon tables (coupon, order_coupon, coupon_version)
ALTER TABLE `coupon` ADD `per_customer_usage_count` BOOLEAN NOT NULL DEFAULT FALSE AFTER `serialized_conditions`;
ALTER TABLE `order_coupon` ADD `per_customer_usage_count` BOOLEAN NOT NULL DEFAULT FALSE AFTER `serialized_conditions`;
ALTER TABLE `coupon_version` ADD `per_customer_usage_count` BOOLEAN NOT NULL DEFAULT FALSE AFTER `serialized_conditions`;
DROP TABLE IF EXISTS `coupon_customer_count`;
CREATE TABLE `coupon_customer_count`
(
`coupon_id` INTEGER NOT NULL,
`customer_id` INTEGER NOT NULL,
`count` INTEGER DEFAULT 0 NOT NULL,
INDEX `fk_coupon_customer_customer_id_idx` (`customer_id`),
INDEX `fk_coupon_customer_coupon_id_idx` (`coupon_id`),
CONSTRAINT `fk_coupon_customer_customer_id`
FOREIGN KEY (`customer_id`)
REFERENCES `customer` (`id`)
ON DELETE CASCADE,
CONSTRAINT `fk_coupon_customer_coupon_id`
FOREIGN KEY (`coupon_id`)
REFERENCES `coupon` (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB;
SET FOREIGN_KEY_CHECKS = 1;