-- V9 untuk database yang SUDAH BERJALAN.
-- Menambahkan diskon yang melekat pada produk tertentu (bisa lebih dari satu
-- produk sekaligus), terpisah dari diskon keranjang/voucher yang sudah ada.
-- Diskon jenis "produk" berlaku otomatis di kasir untuk produk yang dipilih,
-- tanpa perlu dipilih manual saat checkout.

ALTER TABLE discounts
  ADD COLUMN scope ENUM('cart','product') NOT NULL DEFAULT 'cart' AFTER type;

CREATE TABLE IF NOT EXISTS discount_products (
  id INT AUTO_INCREMENT PRIMARY KEY,
  discount_id INT NOT NULL,
  product_id INT NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uniq_discount_product (discount_id, product_id),
  FOREIGN KEY (discount_id) REFERENCES discounts(id) ON DELETE CASCADE,
  FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE
) ENGINE=InnoDB;

CREATE INDEX idx_discount_products_product ON discount_products(product_id);
CREATE INDEX idx_discount_products_discount ON discount_products(discount_id);
