-- 007: Coupon rules - 7 configurable rules per coupon (issuer-service)
CREATE TABLE IF NOT EXISTS coupon_rules (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    coupon_id UUID NOT NULL REFERENCES coupons(id) ON DELETE CASCADE,
    rule_type VARCHAR(30) NOT NULL CHECK (rule_type IN (
        'transferable',       -- 1. 是否可转让
        'resale_limit',       -- 2. 转售次数限制
        'user_restriction',   -- 3. 用户限制(年龄/职业等)
        'per_user_limit',     -- 4. 每用户限购
        'store_restriction',  -- 5. 指定商户
        'stacking',           -- 6. 叠加使用
        'min_purchase'        -- 7. 最低消费
    )),
    rule_value JSONB NOT NULL DEFAULT '{}',
    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX idx_coupon_rules_coupon_id ON coupon_rules(coupon_id);
CREATE INDEX idx_coupon_rules_type ON coupon_rules(rule_type);
