Commit graph

254 commits

Author SHA1 Message Date
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
e60f3c48d6 allow retired_at in member/phantom update params 2025-12-18 00:35:47 -08:00
42f3d3a9cf include crew_total_score in gw events index 2025-12-17 23:03:22 -08:00
5afd31fdb6 soft delete phantoms after claim confirmation
keeps phantom records for logging, excludes from all queries
2025-12-17 20:08:28 -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
75862aec03 add sorting and filtering to collection weapons 2025-12-16 21:15:44 -08:00
c17dbfbcc7 add download_image endpoint for job skills 2025-12-15 16:09:02 -08:00
834192dc11 fix /jobs/:id/skills to return job's own skills, add emp_skills endpoint 2025-12-15 14:30:32 -08:00
b458335e31 add update endpoint for jobs 2025-12-15 14:21:25 -08:00
056aa3676f move gacha from characters to weapons
weapons have gacha boolean now, characters don't
2025-12-15 12:46:43 -08:00
acf8010669 accept wiki_raw in entity create/update 2025-12-14 21:50:30 -08:00
f589f58eb5 batch_preview: accept pre-fetched wiki_data from client 2025-12-14 13:12:25 -08:00
1054920fcb add gbf series mapping for weapon/summon imports 2025-12-14 11:58:42 -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
349b542c0e fix rescue_from order so StandardError is checked last 2025-12-14 01:48:11 -08:00
d4131cf51d allow :retired param in membership and phantom player controllers 2025-12-14 01:48:06 -08:00
5666ee300c fix import_params to pass nested game data 2025-12-14 01:42:05 -08:00
07f23e2b74 add /users/me settings endpoint 2025-12-14 01:23:37 -08:00
f4ef04881e add bulk_create endpoint for phantom players
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 23:33:49 -08:00
fb253adf45 add catch-all exception handler to log 500 errors 2025-12-13 21:41:29 -08:00
981feff814 add grid_artifact and weapon_series to party show includes 2025-12-13 21:39:47 -08:00
56280eb0ff preload crews and favorites to fix remaining N+1s 2025-12-13 21:38:54 -08:00
aa198f072b add import endpoints to collection controllers 2025-12-13 20:10:18 -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
0a069c0324 fix N+1 query in by_event: include user for membership 2025-12-04 03:05:53 -08:00
26718b5a3e gw event improvements: status field, members_during_event endpoint 2025-12-04 03:02:35 -08:00
7d27d3c8b1 allow officers to update joined_at on members and phantoms 2025-12-04 03:02:27 -08:00
0337bc1e92 add by-event score endpoints that auto-create participation 2025-12-04 03:02:22 -08:00
50e2318f59 add filter support to crew members endpoint
GET /crew/members now accepts ?filter param:
- active (default): active members only
- retired: retired members only
- phantom: phantom players only
- all: all members + phantoms

Response includes both members[] and phantoms[] arrays.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 00:07:22 -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
a3a0138526 add request specs for crew controllers (phases 1-2)
- add crews_spec.rb (18 examples)
- add crew_memberships_spec.rb (13 examples)
- add crew_invitations_spec.rb (15 examples)
- fix crew_memberships authorize_crew_captain! as before_action
- update crew_invitations factory to auto-set invited_by officer

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 23:47:25 -08:00
7f57c2c3ee fix gw controller params and add request specs
- use gw_participation_id param (matches route param name)
- use gw_crew_score root key for consistency
- add crew_gw_participations request specs
- add gw_crew_scores request specs
- add gw_individual_scores request specs
- fix batch authorization to return early

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 23:40:38 -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
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
233dd4fe95 add sync endpoints and collection_id params to controllers 2025-12-03 22:46:17 -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
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
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
fd1c363352 add POST /artifacts/grade endpoint
allows grading artifact skills without persisting a record
2025-12-03 13:32:57 -08:00
8787aa34a3 include reroll_slot and grades in artifact responses 2025-12-03 13:27:35 -08:00
e6438eaabe support series_slug filter in weapon_keys endpoint 2025-12-03 12:59:07 -08:00