56 lines
1.6 KiB
SQL
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);
|