VRFS-3359 : Update schema and models with per-month and per-lesson price for each interval. Update tests to match.
This commit is contained in:
parent
8ce313f5c7
commit
3f2fd94c58
|
|
@ -1,30 +1,33 @@
|
||||||
CREATE TABLE teachers (
|
CREATE TABLE teachers (
|
||||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||||
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
||||||
introductory_video VARCHAR(1024) NULL,
|
introductory_video VARCHAR(1024) NULL,
|
||||||
years_teaching SMALLINT NOT NULL DEFAULT 0,
|
years_teaching SMALLINT NOT NULL DEFAULT 0,
|
||||||
years_playing SMALLINT NOT NULL DEFAULT 0,
|
years_playing SMALLINT NOT NULL DEFAULT 0,
|
||||||
teaches_age_lower SMALLINT NOT NULL DEFAULT 0,
|
teaches_age_lower SMALLINT NOT NULL DEFAULT 0,
|
||||||
teaches_age_upper SMALLINT NOT NULL DEFAULT 0,
|
teaches_age_upper SMALLINT NOT NULL DEFAULT 0,
|
||||||
teaches_beginner BOOLEAN NOT NULL DEFAULT FALSE,
|
teaches_beginner BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
teaches_intermediate BOOLEAN NOT NULL DEFAULT FALSE,
|
teaches_intermediate BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
teaches_advanced BOOLEAN NOT NULL DEFAULT FALSE,
|
teaches_advanced BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
website VARCHAR(1024) NULL,
|
website VARCHAR(1024) NULL,
|
||||||
biography VARCHAR(4096) NULL,
|
biography VARCHAR(4096) NULL,
|
||||||
prices_per_lesson BOOLEAN NOT NULL DEFAULT FALSE,
|
prices_per_lesson BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
prices_per_month BOOLEAN NOT NULL DEFAULT FALSE,
|
prices_per_month BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
lesson_duration_30 BOOLEAN NOT NULL DEFAULT FALSE,
|
lesson_duration_30 BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
lesson_duration_45 BOOLEAN NOT NULL DEFAULT FALSE,
|
lesson_duration_45 BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
lesson_duration_60 BOOLEAN NOT NULL DEFAULT FALSE,
|
lesson_duration_60 BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
lesson_duration_90 BOOLEAN NOT NULL DEFAULT FALSE,
|
lesson_duration_90 BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
lesson_duration_120 BOOLEAN NOT NULL DEFAULT FALSE,
|
lesson_duration_120 BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
price_per_lesson_cents INT NULL,
|
price_per_lesson_30_cents INT NULL,
|
||||||
price_per_month_cents INT NULL,
|
price_per_lesson_45_cents INT NULL,
|
||||||
price_duration_30_cents INT NULL,
|
price_per_lesson_60_cents INT NULL,
|
||||||
price_duration_45_cents INT NULL,
|
price_per_lesson_90_cents INT NULL,
|
||||||
price_duration_60_cents INT NULL,
|
price_per_lesson_120_cents INT NULL,
|
||||||
price_duration_90_cents INT NULL,
|
price_per_month_30_cents INT NULL,
|
||||||
price_duration_120_cents INT NULL,
|
price_per_month_45_cents INT NULL,
|
||||||
|
price_per_month_60_cents INT NULL,
|
||||||
|
price_per_month_90_cents INT NULL,
|
||||||
|
price_per_month_120_cents INT NULL,
|
||||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
);
|
);
|
||||||
|
|
@ -48,7 +51,7 @@ CREATE TABLE teacher_experiences(
|
||||||
name VARCHAR(200) NOT NULL,
|
name VARCHAR(200) NOT NULL,
|
||||||
organization VARCHAR(200) NOT NULL,
|
organization VARCHAR(200) NOT NULL,
|
||||||
start_year SMALLINT NOT NULL DEFAULT 0,
|
start_year SMALLINT NOT NULL DEFAULT 0,
|
||||||
end_year SMALLINT NOT NULL DEFAULT 0
|
end_year SMALLINT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Has many/through tables:
|
-- Has many/through tables:
|
||||||
|
|
|
||||||
|
|
@ -67,13 +67,16 @@ module JamRuby
|
||||||
teacher.lesson_duration_60 = params[:lesson_duration_60] if params.key?(:lesson_duration_60)
|
teacher.lesson_duration_60 = params[:lesson_duration_60] if params.key?(:lesson_duration_60)
|
||||||
teacher.lesson_duration_90 = params[:lesson_duration_90] if params.key?(:lesson_duration_90)
|
teacher.lesson_duration_90 = params[:lesson_duration_90] if params.key?(:lesson_duration_90)
|
||||||
teacher.lesson_duration_120 = params[:lesson_duration_120] if params.key?(:lesson_duration_120)
|
teacher.lesson_duration_120 = params[:lesson_duration_120] if params.key?(:lesson_duration_120)
|
||||||
teacher.price_per_lesson_cents = params[:price_per_lesson_cents] if params.key?(:price_per_lesson_cents)
|
teacher.price_per_lesson_30_cents = params[:price_per_lesson_30_cents] if params.key?(:price_per_lesson_30_cents)
|
||||||
teacher.price_per_month_cents = params[:price_per_month_cents] if params.key?(:price_per_month_cents)
|
teacher.price_per_lesson_45_cents = params[:price_per_lesson_45_cents] if params.key?(:price_per_lesson_45_cents)
|
||||||
teacher.price_duration_30_cents = params[:price_duration_30_cents] if params.key?(:price_duration_30_cents)
|
teacher.price_per_lesson_60_cents = params[:price_per_lesson_60_cents] if params.key?(:price_per_lesson_60_cents)
|
||||||
teacher.price_duration_45_cents = params[:price_duration_45_cents] if params.key?(:price_duration_45_cents)
|
teacher.price_per_lesson_90_cents = params[:price_per_lesson_90_cents] if params.key?(:price_per_lesson_90_cents)
|
||||||
teacher.price_duration_60_cents = params[:price_duration_60_cents] if params.key?(:price_duration_60_cents)
|
teacher.price_per_lesson_120_cents = params[:price_per_lesson_120_cents] if params.key?(:price_per_lesson_120_cents)
|
||||||
teacher.price_duration_90_cents = params[:price_duration_90_cents] if params.key?(:price_duration_90_cents)
|
teacher.price_per_month_30_cents = params[:price_per_month_30_cents] if params.key?(:price_per_month_30_cents)
|
||||||
teacher.price_duration_120_cents = params[:price_duration_120_cents] if params.key?(:price_duration_120_cents)
|
teacher.price_per_month_45_cents = params[:price_per_month_45_cents] if params.key?(:price_per_month_45_cents)
|
||||||
|
teacher.price_per_month_60_cents = params[:price_per_month_60_cents] if params.key?(:price_per_month_60_cents)
|
||||||
|
teacher.price_per_month_90_cents = params[:price_per_month_90_cents] if params.key?(:price_per_month_90_cents)
|
||||||
|
teacher.price_per_month_120_cents = params[:price_per_month_120_cents] if params.key?(:price_per_month_120_cents)
|
||||||
|
|
||||||
# Many-to-many relations:
|
# Many-to-many relations:
|
||||||
teacher.genres = params[:genres].collect{|genre_id|Genre.find(genre_id)} if params[:genres].present?
|
teacher.genres = params[:genres].collect{|genre_id|Genre.find(genre_id)} if params[:genres].present?
|
||||||
|
|
|
||||||
|
|
@ -144,13 +144,16 @@ describe Teacher do
|
||||||
lesson_duration_60: true,
|
lesson_duration_60: true,
|
||||||
lesson_duration_90: true,
|
lesson_duration_90: true,
|
||||||
lesson_duration_120: true,
|
lesson_duration_120: true,
|
||||||
price_per_lesson_cents: 3000,
|
price_per_lesson_30_cents: 3000,
|
||||||
price_per_month_cents: 3000,
|
price_per_lesson_45_cents: 3000,
|
||||||
price_duration_30_cents: 3000,
|
price_per_lesson_60_cents: 3000,
|
||||||
price_duration_45_cents: 3000,
|
price_per_lesson_90_cents: 3000,
|
||||||
price_duration_60_cents: 3000,
|
price_per_lesson_120_cents: 3000,
|
||||||
price_duration_90_cents: 3000,
|
price_per_month_30_cents: 5000,
|
||||||
price_duration_120_cents: 3000
|
price_per_month_45_cents: 5000,
|
||||||
|
price_per_month_60_cents: 5000,
|
||||||
|
price_per_month_90_cents: 5000,
|
||||||
|
price_per_month_120_cents: 5000
|
||||||
)
|
)
|
||||||
|
|
||||||
teacher.should_not be_nil
|
teacher.should_not be_nil
|
||||||
|
|
@ -165,13 +168,16 @@ describe Teacher do
|
||||||
t.lesson_duration_60.should be_true
|
t.lesson_duration_60.should be_true
|
||||||
t.lesson_duration_90.should be_true
|
t.lesson_duration_90.should be_true
|
||||||
t.lesson_duration_120.should be_true
|
t.lesson_duration_120.should be_true
|
||||||
t.price_per_lesson_cents.should == 3000
|
t.price_per_lesson_30_cents.should == 3000
|
||||||
t.price_per_month_cents.should == 3000
|
t.price_per_lesson_45_cents.should == 3000
|
||||||
t.price_duration_30_cents.should == 3000
|
t.price_per_lesson_60_cents.should == 3000
|
||||||
t.price_duration_45_cents.should == 3000
|
t.price_per_lesson_90_cents.should == 3000
|
||||||
t.price_duration_60_cents.should == 3000
|
t.price_per_lesson_120_cents.should == 3000
|
||||||
t.price_duration_90_cents.should == 3000
|
t.price_per_month_30_cents.should == 5000
|
||||||
t.price_duration_120_cents.should == 3000
|
t.price_per_month_45_cents.should == 5000
|
||||||
|
t.price_per_month_60_cents.should == 5000
|
||||||
|
t.price_per_month_90_cents.should == 5000
|
||||||
|
t.price_per_month_120_cents.should == 5000
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -249,13 +255,11 @@ describe Teacher do
|
||||||
lesson_duration_60: false,
|
lesson_duration_60: false,
|
||||||
lesson_duration_90: false,
|
lesson_duration_90: false,
|
||||||
lesson_duration_120: false,
|
lesson_duration_120: false,
|
||||||
price_per_lesson_cents: 3000,
|
#price_per_lesson_30_cents: 3000,
|
||||||
price_per_month_cents: 3000,
|
price_per_lesson_45_cents: 3000,
|
||||||
#price_duration_30_cents: 3000,
|
#price_per_lesson_60_cents: 3000,
|
||||||
price_duration_45_cents: 3000,
|
#price_per_lesson_90_cents: 3000,
|
||||||
#price_duration_60_cents: 3000,
|
price_per_lesson_120_cents: 3000,
|
||||||
#price_duration_90_cents: 3000,
|
|
||||||
price_duration_120_cents: 3000,
|
|
||||||
validate_pricing:true
|
validate_pricing:true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue