* add jobs search endpoint with pg_search
- add en_search and ja_search scopes to Job model
- add jobs action to SearchController with filtering
- supports row, proficiency, master_level, ultimate_mastery, accessory filters
* add jobs create endpoint
* add job accessories CRUD
- add accessory_type to blueprint
- add index, show, create, update, destroy actions
- editors only for mutations
* add routes for jobs search, create, and accessories CRUD
* add max_exorcism_level to weapons
- migration to add column (nullable integer)
- expose in blueprint
- permit in controller
- add spec for create/update
* default exorcism_level=1 for befoulment weapons
- set default on create for GridWeapon and CollectionWeapon
- data migration to populate existing befoulment weapons
- add specs for default behavior
* add weapon_stat_modifiers table for ax skills and befoulments
* add fk columns for ax modifiers and befoulments, replace has_ax_skills with augment_type
* update models for weapon_stat_modifier fks and befoulments
* update blueprints for weapon_stat_modifier serialization
* update import service for weapon_stat_modifier fks and befoulments
* add weapon_stat_modifiers controller and update params for fks
* update tests and factories for weapon_stat_modifier fks
* fix remaining has_ax_skills and ax_modifier references
* add ax_modifier and befoulment_modifier to eager loading
* fix ax modifier column naming and migration approach
* add game_skill_ids for befoulment modifiers
- preview_sync endpoint shows what'll get deleted before you commit
- import services handle reconciliation (find missing items, delete them)
- grid items get flagged as orphaned when their collection source is gone
- party exposes has_orphaned_items
- blueprints include orphaned field
- cached_by_name indexes by both EN and JP names
- find_by_name looks up skill by either language
- strength_for_quality computes strength from quality tier
- 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>
- create crew_invitations table with status enum
- add CrewInvitation model with accept/reject flow
- add CrewInvitationsController for send/accept/reject
- add invitation error classes
- add invitation routes nested under crews
- add pending invitations endpoint for current user
- 38 passing specs for model and controller
- crews table with name, gamertag, granblue_crew_id, description
- crew_memberships with role enum (member/vice_captain/captain)
- partial unique index ensures one active crew per user
- updated User model with crew associations and helper methods
- restructure routes: read via /users/:id/collection/*, write via /collection/*
- add user lookup + privacy check to collection_characters_controller
- add race, proficiency, gender scopes to model
- delete old collection_controller