diff --git a/manifest b/manifest index 87e657da6..3b1bfcc95 100644 --- a/manifest +++ b/manifest @@ -8,3 +8,4 @@ invitations.sql instruments.sql musician_access.sql tracks.sql +followers.sql \ No newline at end of file diff --git a/up/followers.sql b/up/followers.sql new file mode 100644 index 000000000..367201b8a --- /dev/null +++ b/up/followers.sql @@ -0,0 +1,19 @@ +CREATE TABLE users_followers ( + id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), + user_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE, + follower_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +ALTER TABLE users_followers ADD CONSTRAINT user_follower_uniqkey UNIQUE (user_id, follower_id); + +CREATE TABLE bands_followers ( + id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), + band_id VARCHAR(64) NOT NULL REFERENCES bands(id) ON DELETE CASCADE, + follower_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +ALTER TABLE bands_followers ADD CONSTRAINT band_follower_uniqkey UNIQUE (band_id, follower_id); \ No newline at end of file diff --git a/up/users.sql b/up/users.sql index 69c2bd369..0af957a9c 100644 --- a/up/users.sql +++ b/up/users.sql @@ -50,8 +50,8 @@ CREATE TABLE genres ( -- band -> genre mapping CREATE TABLE bands_genres ( id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), - band_id VARCHAR(64) REFERENCES bands(id) ON DELETE CASCADE, - genre_id VARCHAR(64) REFERENCES genres(id) ON DELETE CASCADE, + band_id VARCHAR(64) NOT NULL REFERENCES bands(id) ON DELETE CASCADE, + genre_id VARCHAR(64) NOT NULL REFERENCES genres(id) ON DELETE CASCADE, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); @@ -61,8 +61,8 @@ ALTER TABLE bands_genres ADD CONSTRAINT band_genre_uniqkey UNIQUE (band_id, genr -- musician -> band mapping CREATE TABLE bands_musicians ( id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), - band_id VARCHAR(64) REFERENCES bands(id) ON DELETE CASCADE, - user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE, + band_id VARCHAR(64) NOT NULL REFERENCES bands(id) ON DELETE CASCADE, + user_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE, admin BOOLEAN NOT NULL DEFAULT false, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP