Skip to content

Commit e3e4273

Browse files
authored
Merge pull request #6709 from FireLemons/emancipation_option_data_integrity_upgrade
CasaCasesEmancipationOption rename to follow naming convention
2 parents cf636a0 + 1316b26 commit e3e4273

11 files changed

+70
-27
lines changed

app/models/casa_case.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ class CasaCase < ApplicationRecord
3232
has_many :case_contacts, dependent: :destroy
3333
has_many :casa_case_emancipation_categories, dependent: :destroy
3434
has_many :emancipation_categories, through: :casa_case_emancipation_categories
35-
has_many :casa_cases_emancipation_options, dependent: :destroy
36-
has_many :emancipation_options, through: :casa_cases_emancipation_options
35+
has_many :casa_case_emancipation_options, dependent: :destroy
36+
has_many :emancipation_options, through: :casa_case_emancipation_options
3737
has_many :court_dates, dependent: :destroy
3838
has_many :placements, dependent: :destroy
3939
has_many :case_group_memberships

app/models/casa_cases_emancipation_option.rb renamed to app/models/casa_case_emancipation_option.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
class CasaCasesEmancipationOption < ApplicationRecord
1+
class CasaCaseEmancipationOption < ApplicationRecord
22
belongs_to :casa_case
33
belongs_to :emancipation_option
44

@@ -7,7 +7,7 @@ class CasaCasesEmancipationOption < ApplicationRecord
77

88
# == Schema Information
99
#
10-
# Table name: casa_cases_emancipation_options
10+
# Table name: casa_case_emancipation_options
1111
#
1212
# id :bigint not null, primary key
1313
# created_at :datetime not null
@@ -17,7 +17,7 @@ class CasaCasesEmancipationOption < ApplicationRecord
1717
#
1818
# Indexes
1919
#
20-
# index_cases_options_on_case_id_and_option_id (casa_case_id,emancipation_option_id) UNIQUE
20+
# index_case_options_on_case_id_and_option_id (casa_case_id,emancipation_option_id) UNIQUE
2121
#
2222
# Foreign Keys
2323
#

app/models/emancipation_option.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
class EmancipationOption < ApplicationRecord
22
belongs_to :emancipation_category
3-
has_many :casa_cases_emancipation_options, dependent: :destroy
4-
has_many :casa_cases, through: :casa_cases_emancipation_options
3+
has_many :casa_case_emancipation_options, dependent: :destroy
4+
has_many :casa_cases, through: :casa_case_emancipation_options
55

66
validates :name, presence: true, uniqueness: {scope: :emancipation_category_id}
77

@@ -11,7 +11,7 @@ class EmancipationOption < ApplicationRecord
1111

1212
scope :options_with_category_and_case, ->(emancipation_category_id, casa_case_id) {
1313
joins(:casa_cases)
14-
.where(casa_cases_emancipation_options: {casa_case_id: casa_case_id})
14+
.where(casa_case_emancipation_options: {casa_case_id: casa_case_id})
1515
.where(emancipation_category_id: emancipation_category_id)
1616
}
1717
end
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class RenameCasaCasesEmancipatonOptionsToCasaCaseEmancipatonOptions < ActiveRecord::Migration[7.2]
2+
def change
3+
reversible do |dir|
4+
dir.up do
5+
create_table "casa_case_emancipation_options" do |t|
6+
t.bigint "casa_case_id", null: false
7+
t.bigint "emancipation_option_id", null: false
8+
t.datetime "created_at", null: false
9+
t.datetime "updated_at", null: false
10+
t.index ["casa_case_id", "emancipation_option_id"], name: "index_case_options_on_case_id_and_option_id", unique: true
11+
end
12+
13+
add_foreign_key "casa_case_emancipation_options", "casa_cases", validate: false
14+
add_foreign_key "casa_case_emancipation_options", "emancipation_options", validate: false
15+
16+
safety_assured do
17+
execute <<-SQL
18+
INSERT INTO casa_case_emancipation_options (casa_case_id, emancipation_option_id, created_at, updated_at) SELECT casa_case_id, emancipation_option_id, created_at, updated_at FROM casa_cases_emancipation_options;
19+
SQL
20+
end
21+
end
22+
23+
dir.down do
24+
remove_foreign_key "casa_case_emancipation_options", "casa_cases", validate: false
25+
remove_foreign_key "casa_case_emancipation_options", "emancipation_options", validate: false
26+
27+
drop_table :casa_case_emancipation_options
28+
end
29+
end
30+
end
31+
end
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class RenameCasaCasesEmancipatonOptionsToCasaCaseEmancipatonOptionsFollowUp < ActiveRecord::Migration[7.2]
2+
def up
3+
validate_foreign_key "casa_case_emancipation_options", "casa_cases"
4+
validate_foreign_key "casa_case_emancipation_options", "emancipation_options"
5+
6+
drop_table :casa_cases_emancipation_options
7+
end
8+
9+
def down
10+
fail ActiveRecord::IrreversibleMigration
11+
end
12+
end

db/schema.rb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#
1111
# It's strongly recommended that you check this file into your version control system.
1212

13-
ActiveRecord::Schema[7.2].define(version: 2025_07_02_142004) do
13+
ActiveRecord::Schema[7.2].define(version: 2026_02_11_001655) do
1414
# These are extensions that must be enabled in order to support this database
1515
enable_extension "plpgsql"
1616

@@ -127,6 +127,14 @@
127127
t.index ["casa_case_id"], name: "index_casa_case_emancipation_categories_on_casa_case_id"
128128
end
129129

130+
create_table "casa_case_emancipation_options", force: :cascade do |t|
131+
t.bigint "casa_case_id", null: false
132+
t.bigint "emancipation_option_id", null: false
133+
t.datetime "created_at", null: false
134+
t.datetime "updated_at", null: false
135+
t.index ["casa_case_id", "emancipation_option_id"], name: "index_case_options_on_case_id_and_option_id", unique: true
136+
end
137+
130138
create_table "casa_cases", force: :cascade do |t|
131139
t.string "case_number", null: false
132140
t.boolean "transition_aged_youth", default: false
@@ -145,14 +153,6 @@
145153
t.index ["slug"], name: "index_casa_cases_on_slug"
146154
end
147155

148-
create_table "casa_cases_emancipation_options", force: :cascade do |t|
149-
t.bigint "casa_case_id", null: false
150-
t.bigint "emancipation_option_id", null: false
151-
t.datetime "created_at", null: false
152-
t.datetime "updated_at", null: false
153-
t.index ["casa_case_id", "emancipation_option_id"], name: "index_cases_options_on_case_id_and_option_id", unique: true
154-
end
155-
156156
create_table "casa_orgs", force: :cascade do |t|
157157
t.string "name", null: false
158158
t.datetime "created_at", null: false
@@ -678,9 +678,9 @@
678678
add_foreign_key "banners", "users"
679679
add_foreign_key "casa_case_emancipation_categories", "casa_cases"
680680
add_foreign_key "casa_case_emancipation_categories", "emancipation_categories"
681+
add_foreign_key "casa_case_emancipation_options", "casa_cases"
682+
add_foreign_key "casa_case_emancipation_options", "emancipation_options"
681683
add_foreign_key "casa_cases", "casa_orgs"
682-
add_foreign_key "casa_cases_emancipation_options", "casa_cases"
683-
add_foreign_key "casa_cases_emancipation_options", "emancipation_options"
684684
add_foreign_key "case_assignments", "casa_cases"
685685
add_foreign_key "case_assignments", "users", column: "volunteer_id"
686686
add_foreign_key "case_contacts", "casa_cases"

spec/factories/casa_cases_emancipation_options.rb renamed to spec/factories/casa_case_emancipation_options.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
FactoryBot.define do
2-
factory :casa_cases_emancipation_option do
2+
factory :casa_case_emancipation_option do
33
casa_case do
44
create(:casa_case)
55
end

spec/helpers/emancipations_helper_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
let(:emancipation_option) { create(:emancipation_option) }
5757

5858
it "returns \"checked\" when passed an associated casa case and emancipation option" do
59-
create(:casa_cases_emancipation_option, casa_case_id: casa_case.id, emancipation_option_id: emancipation_option.id)
59+
create(:casa_case_emancipation_option, casa_case_id: casa_case.id, emancipation_option_id: emancipation_option.id)
6060
expect(helper.emancipation_option_checkbox_checked(casa_case, emancipation_option)).to eq("checked")
6161
end
6262

spec/models/casa_cases_emancipation_option_spec.rb renamed to spec/models/casa_case_emancipation_option_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require "rails_helper"
22

3-
RSpec.describe CasaCasesEmancipationOption, type: :model do
3+
RSpec.describe CasaCaseEmancipationOption, type: :model do
44
it { is_expected.to belong_to(:casa_case) }
55
it { is_expected.to belong_to(:emancipation_option) }
66

@@ -15,7 +15,7 @@
1515
end
1616

1717
it "has a valid factory" do
18-
case_option_association = build(:casa_cases_emancipation_option)
18+
case_option_association = build(:casa_case_emancipation_option)
1919
expect(case_option_association.valid?).to be true
2020
end
2121
end

spec/models/casa_case_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
it { is_expected.to belong_to(:casa_org) }
88
it { is_expected.to have_many(:casa_case_emancipation_categories).dependent(:destroy) }
99
it { is_expected.to have_many(:emancipation_categories).through(:casa_case_emancipation_categories) }
10-
it { is_expected.to have_many(:casa_cases_emancipation_options).dependent(:destroy) }
11-
it { is_expected.to have_many(:emancipation_options).through(:casa_cases_emancipation_options) }
10+
it { is_expected.to have_many(:casa_case_emancipation_options).dependent(:destroy) }
11+
it { is_expected.to have_many(:emancipation_options).through(:casa_case_emancipation_options) }
1212
it { is_expected.to have_many(:case_court_orders).dependent(:destroy) }
1313
it { is_expected.to have_many(:volunteers).through(:case_assignments) }
1414

0 commit comments

Comments
 (0)