Commit graph

734 commits

Author SHA1 Message Date
238bc3e59a add routes for jobs search, create, and accessories CRUD 2026-01-04 02:50:13 -08:00
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
1272aba2d1 add jobs create endpoint 2026-01-04 02:50:03 -08:00
93220df4cd 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
2026-01-04 02:49:59 -08:00
53cb15fa27 fix augment_type enum conflict with ActiveRecord none method 2025-12-31 22:39:34 -08:00
c6d117fc09 Merge branch 'next-main' of https://github.com/jedmund/hensei-api into next-main 2025-12-31 22:20:43 -08:00
7bda9a1432
Improve collection sync with scoped filtering and orphan handling (#201)
* collection sync with orphan handling

- 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

* scope artifact sync by element and proficiency

- accept filter param in preview_sync and import
- only check/delete items matching active filter
- prevents accidental deletion of filtered-out items

* scope weapon sync by element and proficiency

- accept filter param in preview_sync and import
- element checks collection_weapon first, falls back to weapon
- proficiency joins through weapon table

* scope summon sync by element

- accept filter param in preview_sync and import
- element joins through summon table
2025-12-31 22:20:10 -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
964b73fda1 fix spec for 8 character positions in unlimited raids 2025-12-31 19:33:04 -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
5c578ee527 auto-compute forge chain fields from forged_from
- add before_save callback to calculate forge_order and forge_chain_id
- add validation to prevent circular forge chains
2025-12-22 19:52:59 -08:00
3abc10a5e2 fix weapon series filter to use weapon_series_id 2025-12-22 01:12:26 -08:00
65ad500550 expose extra_prerequisite and forge chain in weapon api 2025-12-21 22:14:41 -08:00
85d9060dc9 add forge chain support to weapons 2025-12-21 22:14:32 -08:00
405d0ea88c add extra_prerequisite to weapons for extra grid positions 2025-12-21 22:14:23 -08:00
56ee499908 allow 8 character positions for unlimited raids 2025-12-21 13:46:55 -08:00
c99180b299 update database rake tasks 2025-12-21 02:56:31 -08:00
c39cc5d240 expose video_url and summon_count in party api 2025-12-21 02:56:27 -08:00
25aa1f3a62 add video_url and summon_count to parties 2025-12-21 02:56:22 -08:00
847a487920 fix character transcendence in roster endpoint 2025-12-20 20:12:43 -08:00
4bc2b7055e add canonical uncap data to roster endpoint 2025-12-20 19:47:17 -08:00
7a084920f1 raids controller and model updates 2025-12-20 04:13:48 -08:00
5c38629f1f add crew roster endpoint for checking member collections 2025-12-20 04:13:27 -08:00
e87650a2b0 add season and series to unified search for characters 2025-12-20 04:13:16 -08:00
5ea5388bed validate mainhand weapon proficiency matches job 2025-12-20 02:13:28 -08:00
3afee9463f add unlimited flag to raid groups 2025-12-20 01:58:23 -08:00
7222353d29 add collection counts endpoint 2025-12-19 15:52:40 -08:00
5da86c5405 fix collection filters to support comma-separated array params 2025-12-19 12:26:26 -08:00
693962ce3b fix proficiency filter for quirk and standard artifacts 2025-12-19 01:07:41 -08:00
ab19403904 add skill filtering and batch_destroy for collection artifacts 2025-12-19 00:39:52 -08:00
9ce86b22b4 add batch_destroy endpoints for collection items 2025-12-19 00:39:47 -08:00
efa8dec43a allow empty base_values for special skills 2025-12-18 23:37:50 -08:00
9b63e99788 ignore public/assets 2025-12-18 23:16:07 -08:00
4e82e552d5 support extension stats format in character import
- new format with granblue_id at top level
- map gbf awakening types to hensei slugs
- import perpetuity rings and awakening data
2025-12-18 23:15:48 -08:00
98c3eee313 add sorting support to search endpoints 2025-12-18 23:15:37 -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
db2aa43d81 add game_name columns for artifact skill matching
separate game names (used for import matching) from display names
2025-12-18 22:48:08 -08:00
3390eaf755 remove game_skill_id from artifact_skills (not needed)
added then removed - name matching approach doesn't need it
2025-12-18 22:30:59 -08:00
b033d7f74e update artifact import tests for name matching
use name field instead of skill_id in test data
check quality instead of strength in assertions
add japanese name matching test
2025-12-18 22:30:50 -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
3b9eab8b79 switch artifact import to name matching, store quality
match skills by name field instead of skill_id
store raw quality (1-5) instead of computed strength
2025-12-18 22:30:39 -08:00
6c12a202ff add name-based skill lookup for artifact import
- 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
2025-12-18 22:30:33 -08:00
af061f3ab2 add aux_weapon flag to jobs 2025-12-18 21:34:30 -08:00
0c595792f7 support boomerang players in gw scores
- aggregate scores across all membership periods for a user
- add gap markers for events where player wasn't in crew
- add membership history endpoint for editing multiple periods
2025-12-18 19:35:39 -08:00
1520fd8d2f optimize gw_scores endpoints with SQL aggregation 2025-12-18 17:55:19 -08:00
ad5c9893e4 include phantoms in active/retired member filters 2025-12-18 17:48:49 -08:00
687f7ae926 support username lookup for member gw scores 2025-12-18 13:20:38 -08:00
4a6ae93d20 add gw scores history endpoints for members and phantoms 2025-12-18 11:02:59 -08:00
cc722b9660 exclude claimed phantoms from gw event player list 2025-12-18 00:41:25 -08:00