- phantom_players table for tracking scores of non-user members - claim flow: officer assigns phantom to user, user confirms, scores transfer - CRUD endpoints plus /assign and /confirm_claim actions - model/request specs for all functionality (37 examples) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
34 lines
765 B
Ruby
34 lines
765 B
Ruby
FactoryBot.define do
|
|
factory :phantom_player do
|
|
crew
|
|
sequence(:name) { |n| "Phantom Player #{n}" }
|
|
granblue_id { nil }
|
|
notes { nil }
|
|
|
|
trait :with_granblue_id do
|
|
sequence(:granblue_id) { |n| "#{10000000 + n}" }
|
|
end
|
|
|
|
trait :claimed do
|
|
transient do
|
|
claimer { nil }
|
|
end
|
|
|
|
after(:build) do |phantom, evaluator|
|
|
if evaluator.claimer
|
|
phantom.claimed_by = evaluator.claimer
|
|
else
|
|
# Create a member of the crew
|
|
user = create(:user)
|
|
create(:crew_membership, crew: phantom.crew, user: user, role: :member)
|
|
phantom.claimed_by = user
|
|
end
|
|
end
|
|
end
|
|
|
|
trait :confirmed do
|
|
claimed
|
|
claim_confirmed { true }
|
|
end
|
|
end
|
|
end
|