-- ============================================================
-- Google Review Wheel — Installation SQL
-- À exécuter une seule fois sur votre base de données
-- ============================================================

SET NAMES utf8mb4;
SET time_zone = '+00:00';

-- ─── LOTS (prizes) ───────────────────────────────────────────
CREATE TABLE IF NOT EXISTS `grw_prizes` (
    `id`               BIGINT(20)     NOT NULL AUTO_INCREMENT,
    `name`             VARCHAR(255)   NOT NULL,
    `description`      TEXT,
    `probability`      DECIMAL(5,2)   NOT NULL DEFAULT 0,
    `color`            VARCHAR(7)     DEFAULT '#3498db',
    `icon`             VARCHAR(50)    DEFAULT 'gift',
    `image_url`        VARCHAR(500)   DEFAULT NULL,
    `active`           TINYINT(1)     DEFAULT 1,
    `is_loser`         TINYINT(1)     DEFAULT 0,
    `redeemable_delay` TINYINT(1)     DEFAULT 0,
    `expiry_date`      DATE           DEFAULT NULL,
    `created_at`       DATETIME       DEFAULT CURRENT_TIMESTAMP,
    `updated_at`       DATETIME       DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ─── PARTICIPANTS ─────────────────────────────────────────────
CREATE TABLE IF NOT EXISTS `grw_participants` (
    `id`                BIGINT(20)   NOT NULL AUTO_INCREMENT,
    `email`             VARCHAR(255) NOT NULL,
    `name`              VARCHAR(255),
    `phone`             VARCHAR(50),
    `google_id`         VARCHAR(255) DEFAULT NULL,
    `google_review_id`  VARCHAR(255),
    `review_verified`   TINYINT(1)  DEFAULT 0,
    `review_date`       DATETIME,
    `ip_address`        VARCHAR(45),
    `user_agent`        TEXT,
    `created_at`        DATETIME    DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    KEY `email`            (`email`),
    KEY `google_id`        (`google_id`),
    KEY `review_verified`  (`review_verified`),
    KEY `created_at`       (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ─── GAINS (wins) ────────────────────────────────────────────
CREATE TABLE IF NOT EXISTS `grw_wins` (
    `id`               BIGINT(20)   NOT NULL AUTO_INCREMENT,
    `participant_id`   BIGINT(20)   NOT NULL,
    `prize_id`         BIGINT(20)   NOT NULL,
    `qr_code`          VARCHAR(255) NOT NULL,
    `qr_code_path`     VARCHAR(255),
    `redeemed`         TINYINT(1)   DEFAULT 0,
    `redeemed_at`      DATETIME,
    `redeemed_by`      BIGINT(20),
    `email_sent`       TINYINT(1)   DEFAULT 0,
    `email_sent_at`    DATETIME,
    `redeemable_from`  DATETIME     DEFAULT NULL,
    `expiry_date`      DATE         DEFAULT NULL,
    `created_at`       DATETIME     DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `qr_code`       (`qr_code`),
    KEY `participant_id`       (`participant_id`),
    KEY `prize_id`             (`prize_id`),
    KEY `redeemed`             (`redeemed`),
    KEY `created_at`           (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ─── PARAMÈTRES (remplace get_option/update_option de WP) ────
CREATE TABLE IF NOT EXISTS `grw_settings` (
    `option_name`  VARCHAR(191) NOT NULL,
    `option_value` LONGTEXT,
    `updated_at`   DATETIME     DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`option_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ─── Valeurs par défaut des paramètres ───────────────────────
INSERT IGNORE INTO `grw_settings` (`option_name`, `option_value`) VALUES
('grw_google_api_key',       ''),
('grw_google_place_id',      ''),
('grw_google_client_id',     ''),
('grw_google_client_secret', ''),
('grw_email_from_name',      'Mon Commerce'),
('grw_email_from_email',     'contact@example.com'),
('grw_email_subject',        'Félicitations ! Vous avez gagné un lot'),
('grw_wheel_title',          'Tournez la roue et gagnez !'),
('grw_wheel_subtitle',       'Déposez un avis Google et tentez votre chance'),
('grw_primary_color',        '#3498db'),
('grw_secondary_color',      '#2ecc71'),
('grw_min_review_rating',    '4'),
('grw_review_check_delay',   '60'),
('grw_allow_multiple_spins', '0'),
('grw_admin_notification',   '1'),
('grw_active_theme',         'default'),
('grw_db_version',           '1.3.0');

-- ─── Lots par défaut (si la table est vide) ───────────────────
INSERT IGNORE INTO `grw_prizes` (`id`, `name`, `description`, `probability`, `color`, `icon`) VALUES
(1, '10% de réduction',  'Réduction de 10% sur votre prochain achat',      30.00, '#3498db', 'percent'),
(2, 'Produit gratuit',   'Un produit offert de votre choix',               15.00, '#2ecc71', 'gift'),
(3, '20% de réduction',  'Réduction de 20% sur votre prochain achat',      20.00, '#e74c3c', 'star'),
(4, 'Livraison gratuite','Livraison offerte sur votre prochaine commande',  25.00, '#f39c12', 'truck'),
(5, 'Cadeau surprise',   'Un cadeau mystère vous attend',                  10.00, '#9b59b6', 'surprise');
