feat: Add seed file for mission metadata

- Create missions from scenario directories
- Auto-discover scenarios in app/assets/scenarios/
- Simple metadata only (no scenario data in DB)
- Scenario data generated on-demand via ERB
This commit is contained in:
Z. Cliffe Schreuders
2025-11-21 15:27:54 +00:00
parent 447cde6356
commit 4681c75c83

25
db/seeds.rb Normal file
View File

@@ -0,0 +1,25 @@
puts "Creating BreakEscape missions..."
# List all scenario directories
scenario_dirs = Dir.glob(Rails.root.join('app/assets/scenarios/*')).select { |f| File.directory?(f) }
scenario_dirs.each do |dir|
scenario_name = File.basename(dir)
next if scenario_name == 'common' # Skip common directory if it exists
# Create mission metadata
mission = BreakEscape::Mission.find_or_initialize_by(name: scenario_name)
if mission.new_record?
mission.display_name = scenario_name.titleize
mission.description = "Play the #{scenario_name.titleize} scenario"
mission.published = true
mission.difficulty_level = 3 # Default, can be updated later
mission.save!
puts " ✓ Created: #{mission.display_name}"
else
puts " - Exists: #{mission.display_name}"
end
end
puts "Done! Created #{BreakEscape::Mission.count} missions."