Commit graph

607 commits

Author SHA1 Message Date
8fca01d6c7 update crew plan with Phase 2 completion 2025-12-03 23:06:31 -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
0599db101f update crew plan with Phase 1 completion 2025-12-03 22:52:23 -08:00
872b6fdb59 add crew specs and fix error handling
- add transactional fixtures to rails_helper for test isolation
- restructure crew errors to CrewErrors module for Zeitwerk
- add rescue_from for CrewErrors::CrewError in api_controller
- add model specs for Crew and CrewMembership (34 examples)
- add controller specs for crews and memberships (28 examples)
- add crew-related specs to User model (22 examples)
- add factories for crews and crew_memberships
2025-12-03 22:51:34 -08:00
274881e894 add collection refs and out_of_sync to grid blueprints 2025-12-03 22:48:32 -08:00
233dd4fe95 add sync endpoints and collection_id params to controllers 2025-12-03 22:46:17 -08:00
a76d0719c9 add collection refs and sync methods to grid models 2025-12-03 22:42:29 -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
9b01aa0ff3 add crew and crew_membership models with migrations
- 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
2025-12-03 22:41:19 -08:00
35b8a674ab add collection references to grid tables 2025-12-03 22:40:34 -08:00
658d3d9c49 add rarity filter to collection artifacts index 2025-12-03 21:26:46 -08:00
6cf85a5b3e add artifact import from game data
- Add ArtifactImportService to parse game JSON and create collection artifacts
- Maps game skill_id to our (group, modifier) format using verified mapping
- Handles skill quality -> strength lookup via ArtifactSkill.base_values
- Supports duplicate detection via game_id, with optional update_existing flag
- Quirk artifacts get proficiency from game data; skills stored as empty
- Add POST /collection/artifacts/import endpoint
- Add game_id column to collection_artifacts, collection_weapons,
  collection_summons for tracking game inventory instance IDs
2025-12-03 14:20:21 -08:00
1cbfa90428 update artifact skill tier ratings based on community data
- Remap Group I skills: TA Rate and Debuff Success as ideal;
  Elemental ATK as good; ATK/HP/CA DMG/DEF as neutral;
  Skill DMG/Crit/DA/Debuff Resist as bad
- Remap Group II skills: all caps and supplemental damage as ideal;
  tradeoff skills as good; chain amplify/situational defensive as neutral;
  regeneration and turn-based reduction as bad
- Remap Group III skills: 10+ turn amp and stackable supp as ideal;
  CD reduction/cap up/farming skills as good; conditional buffs as neutral;
  healing bonus/linked/buff removal/turn skip as bad
- Fix synergy pairs to use correct modifier references matching
  actual skill definitions from artifact_skills.json
2025-12-03 13:51:20 -08:00
4715591545 add artifact image download endpoints
- POST /artifacts/:id/download_image (sync single size)
- POST /artifacts/:id/download_images (async all sizes)
- GET /artifacts/:id/download_status (poll job status)
2025-12-03 13:37:24 -08:00
70e6d50371 add artifact image download service and job 2025-12-03 13:37:10 -08:00
e5d80bde23 add ArtifactDownloader for artifact images
downloads square (s) and wide (m) sizes from game CDN
2025-12-03 13:37:04 -08:00
fd1c363352 add POST /artifacts/grade endpoint
allows grading artifact skills without persisting a record
2025-12-03 13:32:57 -08:00
c3dbab896c include grade in artifact blueprints by default 2025-12-03 13:32:53 -08:00
7cf237b7b3 update ArtifactGrader with scrap/keep/reroll actions
recommendations now suggest:
- scrap: low score, bad skills, or no valuable skills
- keep: high score or all ideal skills
- reroll: mediocre artifacts with improvement potential
2025-12-03 13:32:48 -08:00
623661eb2c fix artifact test factories and specs
use unique granblue_ids, default to empty skills, fix element matching
2025-12-03 13:27:40 -08:00
8787aa34a3 include reroll_slot and grades in artifact responses 2025-12-03 13:27:35 -08:00
58cb970457 add ArtifactGrader service for skill evaluation
grades artifacts based on skill tiers, base strength, and synergy.
provides reroll recommendations for suboptimal lines.
2025-12-03 13:27:31 -08:00
e6539ad7e1 add reroll_slot to artifact models 2025-12-03 13:27:26 -08:00
183641b842 add data migrations for artifacts and artifact_skills 2025-12-03 13:00:45 -08:00
c0f13c6b9c update data_schema 2025-12-03 12:59:11 -08:00
e6438eaabe support series_slug filter in weapon_keys endpoint 2025-12-03 12:59:07 -08:00
97cb59894a include weapon_series flags in series response 2025-12-03 12:59:04 -08:00
233b3430ef add artifact specs and factories 2025-12-03 12:58:49 -08:00
cc7ac1956b add artifact controllers and routes 2025-12-03 12:58:44 -08:00
069118cbe9 add artifact blueprints 2025-12-03 12:58:40 -08:00
d6d655297b add artifact seed data 2025-12-03 12:58:35 -08:00
c19259c84a add artifact models with skill validations 2025-12-03 12:58:32 -08:00
210af50477 add migrations for artifacts feature 2025-12-03 12:58:22 -08:00
83d065e2f9 split weapon_series data migration into three separate files 2025-12-03 12:56:51 -08:00
f64fd63b6c add series= setter for weapon, include flags in series list 2025-12-03 12:38:41 -08:00
38f126f2ef fix weapon_series boolean flags and ordering 2025-12-03 12:33:55 -08:00
3a8d42f800 fix weapon_series data migration to match canonical order 2025-12-03 12:14:44 -08:00
4a51b18ab8 update schema files 2025-12-03 10:47:06 -08:00
efe9abed60 add test factories and fixtures for weapon_series 2025-12-03 10:46:54 -08:00
12e3965325 add data migration for weapon_series 2025-12-03 10:46:41 -08:00
20ea6e4fd8 update weapon processor to use weapon_series 2025-12-03 10:46:09 -08:00
bd5f1b0240 add weapon_series API endpoints and update blueprints 2025-12-03 10:45:57 -08:00
c395acaefc update models to use weapon_series associations 2025-12-03 10:45:48 -08:00
9d6dd335ae add weapon_series and weapon_key_series tables and models 2025-12-03 10:45:25 -08:00
e944f93ca3 fix collection_weapon awakening_level default
set model-level default so validation passes before db default applies
2025-12-03 09:03:42 -08:00
99292f20ef add batch endpoints for collection items
POST /collection/{characters,weapons,summons}/batch
2025-12-03 09:03:37 -08:00
4a471dd273 add filtering/sorting params to collection characters endpoint 2025-12-02 17:19:15 -08:00
689aa96645 always include awakening field in collection character response 2025-12-02 17:19:11 -08:00
e97b0ade55 add default awakening, sorting, filtering scopes to CollectionCharacter 2025-12-02 17:19:07 -08:00