diff --git a/db/seeds.rb b/db/seeds.rb index ad2172734..12e02981e 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -19,38 +19,48 @@ def create_data_protection_confirmation(user) end unless Rails.env.test? - stock_owner1 = Organisation.find_or_create_by!( - name: "Stock Owner 1", - address_line1: "2 Marsham Street", - address_line2: "London", + absorbing_organisation = Organisation.find_or_create_by!( + name: "Absorbing organisation", + address_line1: "Absorbing organisation address line 1", + address_line2: "Absorbing organisation address line 2", postcode: "SW1P 4DF", - holds_own_stock: true, + holds_own_stock: false, other_stock_owners: "None", managing_agents_label: "None", provider_type: "LA", - ) - stock_owner2 = Organisation.find_or_create_by!( - name: "Stock Owner 2", - address_line1: "2 Marsham Street", - address_line2: "London", - postcode: "SW1P 4DF", + ) do + info = "Seeded Absorbing organisation Organisation" + if Rails.env.development? + pp info + else + Rails.logger.info info + end + end + + merging_organisation1 = Organisation.find_or_create_by!( + name: "Merging organisation 1", + address_line1: "Merging organisation 1 address line 1", + address_line2: "Merging organisation 1 address line 2", + postcode: "BA21 4AT", holds_own_stock: true, other_stock_owners: "None", managing_agents_label: "None", - provider_type: "LA", + provider_type: "PRP", ) - managing_agent1 = Organisation.find_or_create_by!( - name: "Managing Agent 1 (PRP)", - address_line1: "2 Marsham Street", - address_line2: "London", - postcode: "SW1P 4DF", + + merging_organisation2 = Organisation.find_or_create_by!( + name: "Merging organisation 2", + address_line1: "Merging organisation 2 address line 1", + address_line2: "Merging organisation 2 address line 2", + postcode: "BA21 4AT", holds_own_stock: true, other_stock_owners: "None", managing_agents_label: "None", provider_type: "PRP", ) - managing_agent2 = Organisation.find_or_create_by!( - name: "Managing Agent 2", + + absorbing_organisation_stock_owner = Organisation.find_or_create_by!( + name: "Absorbing organisation Stock Owner", address_line1: "2 Marsham Street", address_line2: "London", postcode: "SW1P 4DF", @@ -60,8 +70,8 @@ unless Rails.env.test? provider_type: "LA", ) - org = Organisation.find_or_create_by!( - name: "DLUHC", + absorbing_organisation_managing_agent = Organisation.find_or_create_by!( + name: "Absorbing organisation Managing Agent", address_line1: "2 Marsham Street", address_line2: "London", postcode: "SW1P 4DF", @@ -69,17 +79,10 @@ unless Rails.env.test? other_stock_owners: "None", managing_agents_label: "None", provider_type: "LA", - ) do - info = "Seeded DLUHC Organisation" - if Rails.env.development? - pp info - else - Rails.logger.info info - end - end + ) - standalone_owns_stock = Organisation.find_or_create_by!( - name: "Standalone Owns Stock 1 Ltd", + merging_organisation1_stock_owner = Organisation.find_or_create_by!( + name: "Merging organisation 1 Stock Owner", address_line1: "2 Marsham Street", address_line2: "London", postcode: "SW1P 4DF", @@ -89,46 +92,65 @@ unless Rails.env.test? provider_type: "LA", ) - standalone_no_stock = Organisation.find_or_create_by!( - name: "Standalone No Stock 1 Ltd", + merging_organisation2_managing_agent = Organisation.find_or_create_by!( + name: "Merging organisation 2 Managing Agent", address_line1: "2 Marsham Street", address_line2: "London", postcode: "SW1P 4DF", - holds_own_stock: false, + holds_own_stock: true, other_stock_owners: "None", managing_agents_label: "None", - provider_type: "LA", + provider_type: "PRP", + ) + + # organisation relationships + OrganisationRelationship.find_or_create_by!( + parent_organisation: absorbing_organisation, + child_organisation: absorbing_organisation_managing_agent, + ) + OrganisationRelationship.find_or_create_by!( + parent_organisation: absorbing_organisation_stock_owner, + child_organisation: absorbing_organisation, ) + OrganisationRelationship.find_or_create_by!( + parent_organisation: merging_organisation1_stock_owner, + child_organisation: merging_organisation1, + ) + OrganisationRelationship.find_or_create_by!( + parent_organisation: merging_organisation2, + child_organisation: merging_organisation2_managing_agent, + ) + + # users User.find_or_create_by!( - name: "Provider Owns Stock", - email: "provider.owner1@example.com", - organisation: standalone_owns_stock, + name: "Absorbing organisation Provider", + email: "provider@example.com", + organisation: org, role: "data_provider", - is_dpo: true, ) do |user| user.password = "password" user.confirmed_at = Time.zone.now - create_data_protection_confirmation(user) end User.find_or_create_by!( - name: "Coordinator Owns Stock", - email: "coordinator.owner1@example.com", - organisation: standalone_owns_stock, + name: "Absorbing organisation Coordinator", + email: "coordinator@example.com", + organisation: org, role: "data_coordinator", is_dpo: true, ) do |user| user.password = "password" user.confirmed_at = Time.zone.now + user.is_dpo = true create_data_protection_confirmation(user) end User.find_or_create_by!( - name: "Provider No Stock", - email: "provider.nostock@example.com", - organisation: standalone_no_stock, - role: "data_provider", + name: "Absorbing organisation Support", + email: "support@example.com", + organisation: org, + role: "support", is_dpo: true, ) do |user| user.password = "password" @@ -136,269 +158,201 @@ unless Rails.env.test? create_data_protection_confirmation(user) end - User.find_or_create_by!( - name: "Coordinator No Stock", - email: "coordinator.nostock@example.com", - organisation: standalone_no_stock, - role: "data_coordinator", + merging_organisation1_provider = User.find_or_create_by!( + name: "Merging organisation 1 Provider", + email: "merging_organisation1_provider@example.com", + organisation: org, + role: "data_provider", ) do |user| user.password = "password" user.confirmed_at = Time.zone.now end User.find_or_create_by!( - name: "Stock owner 1", - email: "stock_owner1_dpo@example.com", - organisation: stock_owner1, + name: "Merging organisation 1 Coordinator", + email: "merging_organisation1_coordinator@example.com", + organisation: org, role: "data_coordinator", is_dpo: true, ) do |user| user.password = "password" user.confirmed_at = Time.zone.now + user.is_dpo = true create_data_protection_confirmation(user) end User.find_or_create_by!( - name: "Stock owner 2", - email: "stock_owner2_dpo@example.com", - organisation: stock_owner2, - role: "data_coordinator", - is_dpo: true, + name: "Merging organisation 2 Provider", + email: "merging_organisation2_provider@example.com", + organisation: org, + role: "data_provider", ) do |user| user.password = "password" user.confirmed_at = Time.zone.now - create_data_protection_confirmation(user) end User.find_or_create_by!( - name: "Managing agent 1", - email: "managing_agent1_dpo@example.com", - organisation: managing_agent1, + name: "Merging organisation 2 Coordinator", + email: "merging_organisation2_coordinator@example.com", + organisation: org, role: "data_coordinator", is_dpo: true, ) do |user| user.password = "password" user.confirmed_at = Time.zone.now + user.is_dpo = true create_data_protection_confirmation(user) end - User.find_or_create_by!( - name: "Managing agent 2", - email: "managing_agent2_dpo@example.com", - organisation: managing_agent2, - role: "data_coordinator", - is_dpo: true, - ) do |user| - user.password = "password" - user.confirmed_at = Time.zone.now - create_data_protection_confirmation(user) - end + # sales logs + + SalesLog.find_or_create_by!( + created_by: merging_organisation1_provider, + owning_organisation: merging_organisation1, + managing_organisation: merging_organisation1, + saledate: Date.new(2023, 4, 1), + purchid: "Merging organisation 1 sale date before merge", + ownershipsch: 1, + type: 2, + jointpur: 1, + jointmore: 1, + ) - OrganisationRelationship.find_or_create_by!( - parent_organisation: stock_owner1, - child_organisation: org, + SalesLog.find_or_create_by!( + created_by: merging_organisation1_provider, + owning_organisation: merging_organisation1, + managing_organisation: merging_organisation1, + saledate: Date.new(2023, 12, 1), + purchid: "Merging organisation 1 sale date after merge", + ownershipsch: 2, + type: 9, + jointpur: 1, + jointmore: 1, ) - OrganisationRelationship.find_or_create_by!( - parent_organisation: stock_owner2, - child_organisation: org, + + # lettings logs + + LettingsLog.find_or_create_by!( + created_by: merging_organisation1_provider, + owning_organisation: merging_organisation1, + managing_organisation: merging_organisation1, + startdate: Date.new(2023, 4, 1), + propcode: "Merging organisation 1 start date before merge", + renewal: 1, + rent_type: 1, ) - OrganisationRelationship.find_or_create_by!( - parent_organisation: org, - child_organisation: managing_agent1, + + LettingsLog.find_or_create_by!( + created_by: merging_organisation1_provider, + owning_organisation: merging_organisation1, + managing_organisation: merging_organisation1, + startdate: Date.new(2023, 12, 1), + propcode: "Merging organisation 1 start date after merge", + renewal: 1, + rent_type: 1, ) - OrganisationRelationship.find_or_create_by!( - parent_organisation: org, - child_organisation: managing_agent2, + + LettingsLog.find_or_create_by!( + created_by: merging_organisation2_provider, + owning_organisation: merging_organisation2, + managing_organisation: merging_organisation2, + startdate: Date.new(2023, 4, 1), + propcode: "Merging organisation 2 start date before merge", + renewal: 1, + rent_type: 1, ) - if Rails.env.development? || Rails.env.review? - User.find_or_create_by!( - name: "Provider", - email: "provider@example.com", - organisation: org, - role: "data_provider", - ) do |user| - user.password = "password" - user.confirmed_at = Time.zone.now - end + LettingsLog.find_or_create_by!( + created_by: merging_organisation2_provider, + owning_organisation: merging_organisation2, + managing_organisation: merging_organisation2, + startdate: Date.new(2023, 12, 1), + propcode: "Merging organisation 2 start date after merge", + renewal: 1, + rent_type: 1, + ) - User.find_or_create_by!( - name: "Coordinator", - email: "coordinator@example.com", - organisation: org, - role: "data_coordinator", - is_dpo: true, - ) do |user| - user.password = "password" - user.confirmed_at = Time.zone.now - user.is_dpo = true - create_data_protection_confirmation(user) - end + # schemes + scheme1 = Scheme.create!( + service_name: "Merging organisation 1 scheme", + sensitive: 0, + registered_under_care_act: 1, + support_type: 2, + scheme_type: 4, + intended_stay: "M", + primary_client_group: "O", + has_other_client_group: 1, + secondary_client_group: "H", + owning_organisation: merging_organisation1, + arrangement_type: "D", + confirmed: true, + created_at: Time.zone.now, + ) - support_user = User.find_or_create_by!( - name: "Support", - email: "support@example.com", - organisation: org, - role: "support", - is_dpo: true, - ) do |user| - user.password = "password" - user.confirmed_at = Time.zone.now - create_data_protection_confirmation(user) - end + scheme2 = Scheme.create!( + service_name: "Merging organisation 2 scheme", + sensitive: 0, + registered_under_care_act: 1, + support_type: 2, + scheme_type: 5, + intended_stay: "S", + primary_client_group: "D", + secondary_client_group: "E", + has_other_client_group: 1, + owning_organisation: merging_organisation2, + arrangement_type: "D", + confirmed: true, + created_at: Time.zone.now, + ) - pp "Seeded dummy users" - end + Scheme.create!( + service_name: "Absorbing organisation scheme", + sensitive: 1, + registered_under_care_act: 1, + support_type: 4, + scheme_type: 7, + intended_stay: "X", + primary_client_group: "G", + has_other_client_group: 1, + secondary_client_group: "R", + owning_organisation: absorbing_organisation, + arrangement_type: "D", + confirmed: true, + created_at: Time.zone.now, + ) - if (Rails.env.development? || Rails.env.review?) && SalesLog.count.zero? - SalesLog.find_or_create_by!( - created_by: support_user, - owning_organisation: org, - managing_organisation: org, - saledate: Date.new(2023, 4, 1), - purchid: "1", - ownershipsch: 1, - type: 2, - jointpur: 1, - jointmore: 1, - ) - - SalesLog.find_or_create_by!( - created_by: support_user, - owning_organisation: org, - managing_organisation: org, - saledate: Date.new(2023, 4, 1), - purchid: "1", - ownershipsch: 2, - type: 9, - jointpur: 1, - jointmore: 1, - ) - - SalesLog.find_or_create_by!( - created_by: support_user, - owning_organisation: org, - managing_organisation: org, - saledate: Date.new(2023, 4, 1), - purchid: "1", - ownershipsch: 3, - type: 10, - companybuy: 1, - ) - - pp "Seeded a sales log of each type" - end + Location.create!( + scheme: scheme1, + location_code: "E09000033", + location_admin_district: "Westminster", + postcode: "CU193AA", + name: "Rectory Road", + type_of_unit: 4, + units: 1, + mobility_type: "N", + ) - if Rails.env.development? || Rails.env.review? - dummy_org = Organisation.find_or_create_by!( - name: "FooBar LTD", - address_line1: "Higher Kingston", - address_line2: "Yeovil", - postcode: "BA21 4AT", - holds_own_stock: true, - other_stock_owners: "None", - managing_agents_label: "None", - provider_type: "LA", - ) - - pp "Seeded dummy FooBar LTD organisation" - - User.find_or_create_by!( - name: "Dummy user", - email: "dummy_org@example.com", - organisation: dummy_org, - role: "data_provider", - is_dpo: true, - ) do |user| - user.password = "password" - user.confirmed_at = Time.zone.now - create_data_protection_confirmation(user) - end - end + Location.create!( + scheme: scheme1, + location_code: "E09000033", + location_admin_district: "Westminster", + postcode: "DM250DC", + name: "Smithy Lane", + type_of_unit: 1, + units: 1, + mobility_type: "W", + ) - if (Rails.env.development? || Rails.env.review?) && Scheme.count.zero? - scheme1 = Scheme.create!( - service_name: "Beulahside Care", - sensitive: 0, - registered_under_care_act: 1, - support_type: 2, - scheme_type: 4, - intended_stay: "M", - primary_client_group: "O", - has_other_client_group: 1, - secondary_client_group: "H", - owning_organisation: org, - arrangement_type: "D", - confirmed: true, - created_at: Time.zone.now, - ) - - scheme2 = Scheme.create!( - service_name: "Abdullahview Point", - sensitive: 0, - registered_under_care_act: 1, - support_type: 2, - scheme_type: 5, - intended_stay: "S", - primary_client_group: "D", - secondary_client_group: "E", - has_other_client_group: 1, - owning_organisation: org, - arrangement_type: "D", - confirmed: true, - created_at: Time.zone.now, - ) - - Scheme.create!( - service_name: "Caspermouth Center", - sensitive: 1, - registered_under_care_act: 1, - support_type: 4, - scheme_type: 7, - intended_stay: "X", - primary_client_group: "G", - has_other_client_group: 1, - secondary_client_group: "R", - owning_organisation: dummy_org, - arrangement_type: "D", - confirmed: true, - created_at: Time.zone.now, - ) - - Location.create!( - scheme: scheme1, - location_code: "E09000033", - location_admin_district: "Westminster", - postcode: "CU193AA", - name: "Rectory Road", - type_of_unit: 4, - units: 1, - mobility_type: "N", - ) - - Location.create!( - scheme: scheme1, - location_code: "E09000033", - location_admin_district: "Westminster", - postcode: "DM250DC", - name: "Smithy Lane", - type_of_unit: 1, - units: 1, - mobility_type: "W", - ) - - Location.create!( - scheme: scheme2, - location_code: "E09000033", - location_admin_district: "Westminster", - postcode: "YX130WP", - name: "Smithy Lane", - type_of_unit: 2, - units: 1, - mobility_type: "W", - ) - pp "Seeded dummy schemes" - end + Location.create!( + scheme: scheme2, + location_code: "E09000033", + location_admin_district: "Westminster", + postcode: "YX130WP", + name: "Smithy Lane", + type_of_unit: 2, + units: 1, + mobility_type: "W", + ) if LocalAuthority.count.zero? la_path = "config/local_authorities_data/initial_local_authorities.csv"