Files

33 lines
1.6 KiB
SQL
Raw Permalink Normal View History

CREATE TABLE IF NOT EXISTS email_verifications (
token_hash CHAR(64) CHARACTER SET ascii COLLATE ascii_bin PRIMARY KEY,
user_serial BIGINT UNSIGNED NOT NULL,
email VARCHAR(100) NOT NULL,
auth_version INT UNSIGNED NOT NULL,
expires_at DATETIME NOT NULL,
INDEX(user_serial), INDEX(expires_at),
FOREIGN KEY(user_serial) REFERENCES users(user_serial) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS club_due_adjustments (
adjustment_serial BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
due_serial BIGINT UNSIGNED NOT NULL,
amount_cents BIGINT NOT NULL,
corrected_amount_cents BIGINT UNSIGNED NOT NULL,
reason VARCHAR(500) NOT NULL,
recorded_by BIGINT UNSIGNED NOT NULL,
request_key CHAR(64) CHARACTER SET ascii COLLATE ascii_bin NOT NULL UNIQUE,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY(due_serial) REFERENCES club_dues(due_serial) ON DELETE RESTRICT,
FOREIGN KEY(recorded_by) REFERENCES users(user_serial) ON DELETE RESTRICT,
CHECK(amount_cents<>0)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS club_payment_reversals (
reversal_serial BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
payment_serial BIGINT UNSIGNED NOT NULL UNIQUE,
reason VARCHAR(500) NOT NULL,
recorded_by BIGINT UNSIGNED NOT NULL,
request_key CHAR(64) CHARACTER SET ascii COLLATE ascii_bin NOT NULL UNIQUE,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY(payment_serial) REFERENCES club_payments(payment_serial) ON DELETE RESTRICT,
FOREIGN KEY(recorded_by) REFERENCES users(user_serial) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;