CREATE DATABASE IF NOT EXISTS sevenkeys;

USE sevenkeys;

CREATE TABLE IF NOT EXISTS CacheTimestamp (
	CacheType ENUM('AllCardsBulkData') PRIMARY KEY,
	Stamp DATETIME NOT NULL
);

CREATE TABLE IF NOT EXISTS ExpansionSet (
	SetCode VARCHAR(6) PRIMARY KEY,
	Name VARCHAR(60) NOT NULL,
	CardCount INT NOT NULL,
	IconSvgUri VARCHAR(60) NOT NULL
);

CREATE TABLE IF NOT EXISTS CardPrinting (
	Id VARCHAR(37) PRIMARY KEY, -- GUID, plus one character for foil/nonfoil
	Name VARCHAR(150) NOT NULL,
	SetCode VARCHAR(6) NOT NULL,
	FOREIGN KEY (SetCode) REFERENCES ExpansionSet(SetCode),
	IsFoil BOOLEAN NOT NULL,
	IsPromo BOOLEAN NOT NULL,
	CollectorNumber VARCHAR(10) NOT NULL,
	ImageUrl VARCHAR(100) NOT NULL,
	Language VARCHAR(3) NOT NULL
);

CREATE TABLE IF NOT EXISTS StorageArea (
	Id INT AUTO_INCREMENT PRIMARY KEY,
	Name VARCHAR(100) NOT NULL,
	StorageType ENUM('Binder', 'Box')
);

CREATE TABLE IF NOT EXISTS CardLocation (
	Id INT AUTO_INCREMENT PRIMARY KEY,
	CardPrintingId VARCHAR(37) NOT NULL,
	FOREIGN KEY (CardPrintingId) REFERENCES CardPrinting(Id),
	CardCondition ENUM('Mint', 'Near Mint', 'Excellent', 'Good', 'Light Played', 'Played', 'Poor') NOT NULL,
	StorageAreaId INT NOT NULL,
	FOREIGN KEY (StorageAreaId) REFERENCES StorageArea(Id),
	Location INT NULL
);
