VRFS-3359 : Teacher Profile Migrations

This commit is contained in:
Steven Miers 2015-07-24 18:32:29 -05:00
parent 823da09ef3
commit cb3137ff80
2 changed files with 74 additions and 0 deletions

View File

@ -298,3 +298,4 @@ musician_search.sql
enhance_band_profile.sql
alter_band_profile_rate_defaults.sql
repair_band_profile.sql
profile_teacher.sql

73
db/up/profile_teacher.sql Normal file
View File

@ -0,0 +1,73 @@
CREATE TABLE teachers (
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
introductory_video VARCHAR(1024) NULL,
years_teaching SMALLINT NOT NULL,
years_playing SMALLINT NOT NULL,
teaches_age_lower SMALLINT NOT NULL DEFAULT 0,
teaches_age_upper SMALLINT NOT NULL DEFAULT 0,
website VARCHAR(1024) NULL,
biography VARCHAR(4096) NOT NULL,
teaches_beginner BOOLEAN NOT NULL DEFAULT FALSE,
teaches_intermediat BOOLEAN NOT NULL DEFAULT FALSE,
teaches_advanced BOOLEAN NOT NULL DEFAULT FALSE,
price_per_lesson BOOLEAN NOT NULL DEFAULT FALSE,
price_per_month BOOLEAN NOT NULL DEFAULT FALSE,
lesson_duration_30 BOOLEAN NOT NULL DEFAULT FALSE,
lesson_duration_45 BOOLEAN NOT NULL DEFAULT FALSE,
lesson_duration_60 BOOLEAN NOT NULL DEFAULT FALSE,
lesson_duration_90 BOOLEAN NOT NULL DEFAULT FALSE,
lesson_duration_120 BOOLEAN NOT NULL DEFAULT FALSE,
price_per_lesson_cents INT NULL,
price_per_month_cents INT NULL,
lesson_duration_30_cents INT NULL,
lesson_duration_45_cents INT NULL,
lesson_duration_60_cents INT NULL,
lesson_duration_90_cents INT NULL,
lesson_duration_120_cents INT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE subjects(
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
name VARCHAR(1024) NOT NULL,
description VARCHAR(4000) NULL
);
CREATE TABLE languages(
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
name VARCHAR(1024) NOT NULL,
description VARCHAR(4000) NULL
);
-- Has many:
CREATE TABLE teacher_experience(
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
teacher_id VARCHAR(64) REFERENCES teachers(id) ON DELETE CASCADE,
-- experience type: teaching, education, award:
experience_type VARCHAR(32) NOT NULL,
name VARCHAR(200) NOT NULL,
organization VARCHAR(200) NOT NULL,
start_year SMALLINT NOT NULL DEFAULT 0,
end_year SMALLINT NOT NULL DEFAULT 0
);
-- Has many/through tables:
CREATE TABLE teachers_genres(
teacher_id VARCHAR(64) REFERENCES teachers(id) ON DELETE CASCADE,
genre_id VARCHAR(64) REFERENCES genres(id) ON DELETE CASCADE
);
CREATE TABLE teachers_instruments(
teacher_id VARCHAR(64) REFERENCES teachers(id) ON DELETE CASCADE,
instrument_id VARCHAR(64) REFERENCES instruments(id) ON DELETE CASCADE
);
CREATE TABLE teachers_subjects(
teacher_id VARCHAR(64) REFERENCES teachers(id) ON DELETE CASCADE,
subject_id VARCHAR(64) REFERENCES subjects(id) ON DELETE CASCADE
);
CREATE TABLE teacher_languages(
teacher_id VARCHAR(64) REFERENCES teachers(id) ON DELETE CASCADE,
language_id VARCHAR(64) REFERENCES languages(id) ON DELETE CASCADE
);