Commit graph

598 commits

Author SHA1 Message Date
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
5bc179afa8 unify collection api: single endpoint for all users
- 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
2025-12-02 15:31:39 -08:00
301f323ee1 add rake tasks to populate gacha fields from wiki_raw 2025-12-02 07:26:19 -08:00
32bc9f5872 fix /users/me endpoint to use current_user 2025-12-02 06:54:12 -08:00
9c5c859da6 add season/series/promotions filters to search endpoints 2025-12-02 05:54:52 -08:00
c1a5d62a12 add promotions parsing to weapon and summon parsers 2025-12-02 05:51:42 -08:00
7aa0521ca4 add promotions to weapon and summon importers 2025-12-02 05:51:30 -08:00
e0a82bc7a4 add season/series/gacha_available to importer and parser 2025-12-02 05:48:22 -08:00
033e50a1c8 add force option to base downloader 2025-12-02 05:26:41 -08:00
208d1f4836 add formal promotion to enums 2025-12-02 05:25:04 -08:00