# frozen_string_literal: true # Copyright (C) 2024-2025 LibreWeddingPlanner contributors NUMBER_OF_GUESTS = 200 ActsAsTenant.without_tenant do Wedding.delete_all end wedding = Wedding.create!(slug: :default) ActsAsTenant.with_tenant(wedding) do [ { name: 'Photographer', amount: 3000, pricing_type: 'fixed' }, { name: 'Country house', amount: 6000, pricing_type: 'fixed' }, { name: 'Catering', amount: 200, pricing_type: 'per_person' }, { name: 'Flowers', amount: 500, pricing_type: 'fixed' }, { name: 'Band', amount: 1000, pricing_type: 'fixed' }, { name: 'Wedding planner', amount: 2000, pricing_type: 'fixed' }, { name: 'Dress', amount: 1000, pricing_type: 'fixed' }, { name: 'Suit', amount: 500, pricing_type: 'fixed' }, { name: 'Rings', amount: 1000, pricing_type: 'fixed' }, { name: 'Makeup', amount: 200, pricing_type: 'fixed' }, { name: 'Hair', amount: 200, pricing_type: 'fixed' }, { name: 'Transportation', amount: 3000, pricing_type: 'fixed' }, { name: 'Invitations', amount: 200, pricing_type: 'fixed' }, { name: 'Cake', amount: 500, pricing_type: 'fixed' } ].then { Expense.insert_all!(it) } Group.create!(name: "Jim's guests", icon: 'pi pi-heart').tap do |parent| parent.children.create!(name: "Jim's family", icon: 'pi pi-users').tap do |family| family.children.create!(name: "Jim's close family", icon: 'pi pi-home') family.children.create!(name: "Jim's cousins", icon: 'pi pi-home') family.children.create!(name: "Jim's relatives", icon: 'pi pi-home') end parent.children.create!(name: "Jim's friends", icon: 'pi pi-bullseye') parent.children.create!(name: "Jim's work", icon: 'pi pi-desktop').tap do |work| work.children.create!(name: "Jim's besties at work", icon: 'pi pi-briefcase') end end Group.create!(name: "Pam's guests", icon: 'pi pi-heart-fill').tap do |parent| parent.children.create!(name: "Pam's family", icon: 'pi pi-users').tap do |family| family.children.create!(name: "Pam's close family", icon: 'pi pi-home') family.children.create!(name: "Pam's cousins", icon: 'pi pi-home') family.children.create!(name: "Pam's relatives", icon: 'pi pi-home') end parent.children.create!(name: "Pam's friends", icon: 'pi pi-bullseye') parent.children.create!(name: "Pam's work", icon: 'pi pi-desktop').tap do |work| work.children.create!(name: "Pam's besties at work", icon: 'pi pi-briefcase') end end Group.create!(name: 'Common guests', icon: 'pi pi-users').tap do |parent| parent.children.create!(name: 'College friends', icon: 'pi pi-calculator') parent.children.create!(name: 'High school friends', icon: 'pi pi-crown') parent.children.create!(name: 'Childhood friends', icon: 'pi pi-envelope') end groups = Group.all invitations = ([{}] * (NUMBER_OF_GUESTS * 0.8)).then { Invitation.insert_all!(it) }.rows.flatten NUMBER_OF_GUESTS.times.map do |i| { name: Faker::Name.name, phone: Faker::PhoneNumber.cell_phone, group_id: groups.sample.id, status: Guest.statuses.keys.sample, invitation_id: invitations[i] } end.then { Guest.insert_all!(it) } ActiveJob.perform_all_later(3.times.map { TableSimulatorJob.new(wedding.id) }) "red".dup.paint.palette.triad(as: :hex).zip(Group.roots).each { |(color, group)| group.update!(color: color.paint.desaturate(40)) } Group.roots.each(&:colorize_children) User.create!( email: 'development@example.com', confirmed_at: Time.zone.now, password: 'supersecretpassword', password_confirmation: 'supersecretpassword' ) end