# Copyright (C) 2024 Manuel Bustillo

NUMBER_OF_GUESTS = 50

TablesArrangement.delete_all
Expense.delete_all
Guest.delete_all
Group.delete_all

Expense.create!(name: 'Photographer', amount: 3000, pricing_type: 'fixed')
Expense.create!(name: 'Country house', amount: 6000, pricing_type: 'fixed')
Expense.create!(name: 'Catering', amount: 200, pricing_type: 'per_person')
Expense.create!(name: 'Flowers', amount: 500, pricing_type: 'fixed')
Expense.create!(name: 'Band', amount: 1000, pricing_type: 'fixed')
Expense.create!(name: 'Wedding planner', amount: 2000, pricing_type: 'fixed')
Expense.create!(name: 'Dress', amount: 1000, pricing_type: 'fixed')
Expense.create!(name: 'Suit', amount: 500, pricing_type: 'fixed')
Expense.create!(name: 'Rings', amount: 1000, pricing_type: 'fixed')
Expense.create!(name: 'Makeup', amount: 200, pricing_type: 'fixed')
Expense.create!(name: 'Hair', amount: 200, pricing_type: 'fixed')
Expense.create!(name: 'Transportation', amount: 3000, pricing_type: 'fixed')
Expense.create!(name: 'Invitations', amount: 200, pricing_type: 'fixed')
Expense.create!(name: 'Cake', amount: 500, pricing_type: 'fixed')

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

NUMBER_OF_GUESTS.times do
  Guest.create!(
    first_name: Faker::Name.first_name,
    last_name: Faker::Name.last_name,
    phone: Faker::PhoneNumber.cell_phone,
    group: groups.sample,
    status: Guest.statuses.keys.sample
  )
end

ActiveJob.perform_all_later(3.times.map { TableSimulatorJob.new })