Commit graph

89 commits

Author SHA1 Message Date
d108427645 add job accessories CRUD
- add accessory_type to blueprint
- add index, show, create, update, destroy actions
- editors only for mutations
2026-01-04 02:50:08 -08:00
1f80e4189f
Add weapon stat modifiers for AX skills and befoulments (#202)
* 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
2025-12-31 22:20:00 -08:00
a6b7e26210
collection sync with orphan handling (#200)
- 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
2025-12-23 22:44:35 -08:00
65ad500550 expose extra_prerequisite and forge chain in weapon api 2025-12-21 22:14:41 -08:00
c39cc5d240 expose video_url and summon_count in party api 2025-12-21 02:56:27 -08:00
7a084920f1 raids controller and model updates 2025-12-20 04:13:48 -08:00
e87650a2b0 add season and series to unified search for characters 2025-12-20 04:13:16 -08:00
3afee9463f add unlimited flag to raid groups 2025-12-20 01:58:23 -08:00
b3dadf24ef add excused field to gw individual scores
- excused boolean and excuse_reason fields
- excuse_reason only visible to crew officers
- include excused in blueprints
2025-12-18 23:15:27 -08:00
b7aeb2bdfe add show/update endpoints for artifact skills
- show and update actions with editor role protection
- include game_name field in blueprint
- clear cache after updates
2025-12-18 23:14:41 -08:00
86e5b9fffb compute strength from quality at display time
blueprint looks up skill and calculates strength
validation checks quality range instead of strength value
2025-12-18 22:30:44 -08:00
af061f3ab2 add aux_weapon flag to jobs 2025-12-18 21:34:30 -08:00
42f3d3a9cf include crew_total_score in gw events index 2025-12-17 23:03:22 -08:00
de72d21e24 add decline/pending endpoints for phantom claims
- decline_claim action lets assigned user reject assignment
- pending_phantom_claims endpoint for user's pending claims
- with_crew blueprint view for phantom claims context
2025-12-17 18:28:23 -08:00
c17dbfbcc7 add download_image endpoint for job skills 2025-12-15 16:09:02 -08:00
b91ef0a4dd standardize links format in blueprints
return wiki: {en, ja} + gamewith, kamigame at top level
2025-12-15 12:47:11 -08:00
e1d212c764 update summon model and blueprint for series lookup 2025-12-14 11:58:34 -08:00
c4e42b0968 update character model and blueprint for series lookup 2025-12-14 11:58:30 -08:00
3b5b8412d3 add summon series lookup table 2025-12-14 11:58:22 -08:00
e7e9bd0f86 add character series lookup table 2025-12-14 11:58:10 -08:00
07f23e2b74 add /users/me settings endpoint 2025-12-14 01:23:37 -08:00
4224dcb257 move recruited_by to separate view to avoid N+1 2025-12-13 21:40:42 -08:00
56280eb0ff preload crews and favorites to fix remaining N+1s 2025-12-13 21:38:54 -08:00
860177c0a4 add show_gamertag to user 2025-12-13 20:09:52 -08:00
534414939b add current_membership to crew response 2025-12-13 20:09:44 -08:00
4db5f4224e return artifact enum values as integers 2025-12-13 20:09:34 -08:00
26718b5a3e gw event improvements: status field, members_during_event endpoint 2025-12-04 03:02:35 -08:00
b4f4f9c304 fix total_score to sum individual honors instead of crew scores 2025-12-04 03:02:18 -08:00
5968ed74d5 add joined_at to memberships and phantoms for historical data
- editable field separate from created_at
- active_during scope uses joined_at for filtering
- backfills from created_at in migration
2025-12-04 03:02:13 -08:00
4c8f4ffcf3 add phantom players for non-registered crew members
- 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>
2025-12-03 23:55:15 -08:00
f2a058b6b2 add GW events and scoring system
- create gw_events, crew_gw_participations, gw_crew_scores, gw_individual_scores
- add models, blueprints, controllers for GW tracking
- add model specs and gw_events controller specs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 23:34:54 -08:00
b75a905e2e add crew invitations system
- 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
2025-12-03 23:06:07 -08:00
c3e992a0dd add gamertag to user blueprint 2025-12-03 23:01:13 -08:00
274881e894 add collection refs and out_of_sync to grid blueprints 2025-12-03 22:48:32 -08:00
e98e59491d add crew controllers, blueprints, routes, and errors
- CrewsController: create, show, update, members, leave, transfer_captain
- CrewMembershipsController: update, destroy, promote, demote
- CrewAuthorizationConcern for member/officer/captain checks
- blueprints for serialization
- custom error classes for crew operations
2025-12-03 22:41:25 -08:00
c3dbab896c include grade in artifact blueprints by default 2025-12-03 13:32:53 -08:00
8787aa34a3 include reroll_slot and grades in artifact responses 2025-12-03 13:27:35 -08:00
97cb59894a include weapon_series flags in series response 2025-12-03 12:59:04 -08:00
069118cbe9 add artifact blueprints 2025-12-03 12:58:40 -08:00
f64fd63b6c add series= setter for weapon, include flags in series list 2025-12-03 12:38:41 -08:00
bd5f1b0240 add weapon_series API endpoints and update blueprints 2025-12-03 10:45:57 -08:00
689aa96645 always include awakening field in collection character response 2025-12-02 17:19:11 -08:00
cb016580bd add recruited_by field to character blueprint 2025-12-02 05:25:01 -08:00
0dba56c55d weapon/summon blueprints: serialize promotions 2025-12-02 04:39:49 -08:00
a3c33ce06a add season/series fields to CharacterBlueprint 2025-12-02 04:13:43 -08:00
6254bfde6f add nicknames, links to entity blueprints; recruits returns character info 2025-12-02 02:14:52 -08:00
be5be0c3fe fix blueprints: use correct association names instead of 'object' 2025-11-29 17:41:29 -08:00
f66e4d5a48 Add transcendence_step to uncap view in grid blueprints 2025-09-19 23:36:24 -07:00
9827658771
Render the correct view when updating jobs (#186)
We were referencing an old view in `PartiesController#update_job`. This has been corrected.
2025-02-25 09:11:13 -05:00
d6300f7aeb
Add first round of tests (#178)
* Install Rspec

* Create .aidigestignore

* Update rails_helper

- Added sections and comments
- Add support for loading via canonical.rb
- Add FactoryBot syntax methods
- Disable SQL logging in test environment

* Move gems around

* Add canonical.rb and test env CSVs

We load these CSVs via canonical.rb when we run tests as a data source for canonical objects.

* Remove RBS for now

This is too much and we need to find the right solution

* Refactor GridSummonsController and add tests

* Create GridSummon factory

* Refactor GridSummon and add documentation and tests

* Create have_error_on.rb

* Update .aidigestignore

* Fix warnings

* Add GridWeapons and Parties factories

* Refactor GridWeapon and add documentation and tests

* Create .rubocop.yml

* Create no_weapon_provided_error.rb

* Refactor GridWeaponsController

- Refactors controller
- Adds YARD documentation
- Adds Rspec tests

* Refactor GridSummonsController

- Refactors controller
- Adds YARD documentation
- Adds Rspec tests

* Enable shoulda/matchers

* Update User factory

* Update party.rb

We moved updating the party's element and extra flag to inside the party. We use an after_commit hook to minimize the amount of queries we're running to do this.

* Update party.rb

We change setting the edit key to use the conditional assignment operator so that it doesn't get overridden when we're running tests. This shouldn't have an effect in production.

* Update api_controller.rb

Change render_unprocessable_entity_response to render the errors hash instead of the exception so that we get more helpful errors.

* Add new errors

Added NoCharacterProvidedError and NoSummonProvidedError

* Add tests and docs to GridCharacter

We added a factory, spec and documentation to the GridCharacter model

* Ensure numericality

* Move enums into GranblueEnums

We don't use these yet, but it gives us a structured place to pull them from.

* Refactor GridCharactersController

- Refactors controller
- Adds YARD documentation
- Adds Rspec tests

* Add debug hook and other small changes

* Update grid_characters_controller.rb

Removes logs

* Update .gitignore

* Update .aidigestignore

* Refactored PartiesController

- Split PartiesController into three concerns
- Implemented testing for PartiesController and two concerns
- Implemented fixes across other files to ensure PartiesController tests pass
- Added Favorites factory

* Implement SimpleCov

* Refactor Party model

- Refactors Party model
- Adds tests
- Adds documentation

* Update granblue_enums.rb

Remove included block
2025-02-12 02:42:30 -08:00