diff --git a/app/models/organisation.rb b/app/models/organisation.rb index 65fce7e51..f27f0019b 100644 --- a/app/models/organisation.rb +++ b/app/models/organisation.rb @@ -1,11 +1,11 @@ class Organisation < ApplicationRecord - has_many :users - has_many :owned_case_logs, class_name: "CaseLog", foreign_key: "owning_organisation_id" - has_many :managed_case_logs, class_name: "CaseLog", foreign_key: "managing_organisation_id" + has_many :users, dependent: :destroy + has_many :owned_case_logs, class_name: "CaseLog", foreign_key: "owning_organisation_id", dependent: :destroy + has_many :managed_case_logs, class_name: "CaseLog", foreign_key: "managing_organisation_id", dependent: :destroy has_many :data_protection_confirmations has_many :organisation_rent_periods - has_many :owned_schemes, class_name: "Scheme", foreign_key: "stock_owning_organisation_id" - has_many :managed_schemes, class_name: "Scheme" + has_many :owned_schemes, class_name: "Scheme", foreign_key: "stock_owning_organisation_id", dependent: :destroy + has_many :managed_schemes, class_name: "Scheme", dependent: :destroy scope :search_by_name, ->(name) { where("name ILIKE ?", "%#{name}%") } scope :search_by, ->(param) { search_by_name(param) } diff --git a/db/migrate/20220707125124_add_foreign_key_to_user_organisation.rb b/db/migrate/20220707125124_add_foreign_key_to_user_organisation.rb new file mode 100644 index 000000000..1f96a0baf --- /dev/null +++ b/db/migrate/20220707125124_add_foreign_key_to_user_organisation.rb @@ -0,0 +1,7 @@ +class AddForeignKeyToUserOrganisation < ActiveRecord::Migration[7.0] + + def change + add_reference :organisations, :users, foreign_key: true, on_delete: :cascade + end +end + diff --git a/db/migrate/20220707133909_add_foreign_key_to_logs_organisation.rb b/db/migrate/20220707133909_add_foreign_key_to_logs_organisation.rb new file mode 100644 index 000000000..79833a1c1 --- /dev/null +++ b/db/migrate/20220707133909_add_foreign_key_to_logs_organisation.rb @@ -0,0 +1,6 @@ +class AddForeignKeyToLogsOrganisation < ActiveRecord::Migration[7.0] + + def change + add_reference :organisations, :case_logs, foreign_key: true, on_delete: :cascade + end +end \ No newline at end of file diff --git a/db/migrate/20220707134232_add_relationships_for_organization.rb b/db/migrate/20220707134232_add_relationships_for_organization.rb new file mode 100644 index 000000000..1773f2a9a --- /dev/null +++ b/db/migrate/20220707134232_add_relationships_for_organization.rb @@ -0,0 +1,20 @@ +class AddRelationshipsForOrganization < ActiveRecord::Migration[7.0] + + class Organisation < ApplicationRecord + has_many :users, dependent: :destroy + has_many :case_logs, dependent: :destroy + has_many :schemes, dependent: :destroy + end + + class User < ApplicationRecord + belongs_to :organization + end + + class CaseLog < ApplicationRecord + belongs_to :organization + end + + class CaseLog < ApplicationRecord + belongs_to :organization + end +end