load Rails.root.join("db/seeds/plans.rb")

AdminAccount.find_or_create_by!(username: "admin") do |a|
  a.password = "admin"
end

coach = User.find_or_create_by!(email: "coach@matchlivetv.test") do |u|
  u.name = "Coach Demo"
  u.password = "password123"
  u.role = "coach"
end

admin = User.find_or_create_by!(email: "admin@matchlivetv.test") do |u|
  u.name = "Admin"
  u.password = "password123"
  u.role = "admin"
end

club = Club.find_or_create_by!(name: "Tigers Volley") do |c|
  c.sport = "volleyball"
  c.primary_color = "#e53935"
  c.secondary_color = "#ffffff"
end

ClubMembership.find_or_create_by!(user: coach, club: club) { |m| m.role = "owner" }

team = club.teams.find_or_create_by!(name: "Under 16") do |t|
  t.sport = "volleyball"
end

UserTeam.find_or_create_by!(user: admin, team: team) { |ut| ut.role = "member" }

Billing::AssignPlan.call(club: club, plan_slug: "free") unless club.subscription

match = team.matches.find_or_create_by!(opponent_name: "ASD Eagles Pavia") do |m|
  m.location = "PalaTigers - Milano"
  m.scheduled_at = 2.hours.from_now
  m.sets_to_win = 3
  m.roster_numbers = [4, 6, 8, 9, 10, 11, 12, 14, 16, 17, 21]
  m.category = "U16"
  m.phase = "Semifinale"
end

puts "Seed OK: coach@matchlivetv.test / password123"
puts "Club: #{club.name}, Team: #{team.name}, Match: #{match.opponent_name}"
