Files
cowl-licensing/schema.sql
2026-03-23 16:09:20 +00:00

56 lines
1.6 KiB
SQL

-- cowl-licensing D1 schema
-- Run: wrangler d1 execute cowl-licensing --file=schema.sql
CREATE TABLE IF NOT EXISTS products (
bmt_id INTEGER NOT NULL,
product TEXT NOT NULL,
product_name TEXT NOT NULL,
display_name TEXT NOT NULL,
short_name TEXT NOT NULL,
edition INTEGER NOT NULL,
version TEXT NOT NULL,
limit_version INTEGER NOT NULL,
limit_activation INTEGER NOT NULL,
limit_subscription INTEGER NOT NULL,
limit_support INTEGER NOT NULL,
download_url TEXT NOT NULL,
PRIMARY KEY (bmt_id, product)
);
CREATE TABLE IF NOT EXISTS editions (
product TEXT NOT NULL,
edition INTEGER NOT NULL,
name TEXT NOT NULL,
PRIMARY KEY (product, edition)
);
CREATE TABLE IF NOT EXISTS serial_numbers (
serial_number TEXT NOT NULL PRIMARY KEY,
product TEXT NOT NULL,
edition INTEGER NOT NULL,
limit_version INTEGER NOT NULL,
limit_activation INTEGER NOT NULL,
limit_subscription INTEGER NOT NULL,
limit_support INTEGER NOT NULL,
note TEXT
);
CREATE TABLE IF NOT EXISTS licenses (
registration_key TEXT NOT NULL,
serial_number TEXT NOT NULL,
product TEXT NOT NULL,
edition INTEGER,
version INTEGER,
timestamp INTEGER NOT NULL,
name TEXT NOT NULL,
email TEXT NOT NULL,
notify INTEGER NOT NULL,
expiration_subscription INTEGER NOT NULL,
expiration_support INTEGER NOT NULL,
PRIMARY KEY (registration_key, serial_number, product)
);
CREATE INDEX IF NOT EXISTS idx_licenses_serial ON licenses(serial_number);
CREATE INDEX IF NOT EXISTS idx_licenses_product ON licenses(product);
CREATE INDEX IF NOT EXISTS idx_serial_numbers_product ON serial_numbers(product);