jam-cloud/db/up/jam_tracks.sql

68 lines
2.1 KiB
MySQL
Raw Permalink Normal View History

CREATE TABLE jam_track_licensors (
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4() NOT NULL,
name VARCHAR NOT NULL UNIQUE,
description TEXT,
attention TEXT,
address_line_1 VARCHAR,
address_line_2 VARCHAR,
city VARCHAR,
state VARCHAR,
zip_code VARCHAR,
contact VARCHAR,
email VARCHAR,
phone VARCHAR,
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW() NOT NULL,
updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW() NOT NULL
);
CREATE TABLE jam_tracks (
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4() NOT NULL,
name VARCHAR NOT NULL UNIQUE,
description TEXT,
bpm decimal,
time_signature VARCHAR,
status VARCHAR,
recording_type VARCHAR,
original_artist TEXT,
songwriter TEXT,
publisher TEXT,
pro VARCHAR,
sales_region VARCHAR,
price decimal,
reproduction_royalty BOOLEAN,
public_performance_royalty BOOLEAN,
reproduction_royalty_amount DECIMAL,
licensor_royalty_amount DECIMAL,
pro_royalty_amount DECIMAL,
url VARCHAR,
md5 VARCHAR,
length BIGINT,
licensor_id VARCHAR(64) REFERENCES jam_track_licensors (id) ON DELETE SET NULL,
genre_id VARCHAR(64) REFERENCES genres (id) ON DELETE SET NULL,
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW() NOT NULL,
updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW() NOT NULL
);
CREATE TABLE jam_track_tracks (
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4() NOT NULL,
position INTEGER,
track_type VARCHAR,
jam_track_id VARCHAR(64) REFERENCES jam_tracks(id) ON DELETE CASCADE,
instrument_id VARCHAR(64) REFERENCES instruments(id) ON DELETE SET NULL,
part VARCHAR,
url VARCHAR,
md5 VARCHAR,
length BIGINT,
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW() NOT NULL,
updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT NOW() NOT NULL
);
CREATE INDEX jam_track_tracks_position_uniqkey ON jam_track_tracks (position, jam_track_id);
CREATE TABLE jam_track_rights (
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4() NOT NULL,
user_id VARCHAR(64) NOT NULL REFERENCES users(id),
jam_track_id VARCHAR(64) NOT NULL REFERENCES jam_tracks(id)
);
CREATE INDEX jam_tracks_rights_uniqkey ON jam_track_rights (user_id, jam_track_id);