Phase 9: division/season tracking, club customization, pack history, notifications
CI / Build, lint & test (push) Failing after 1m42s
CI / Build, lint & test (push) Failing after 1m42s
- GET /division returns live season stats (points, record, promotion threshold) - PUT /club allows updating club name and manager_name - GET /packs/history returns opened packs with full card definitions - GET /notifications dynamically surfaces completed objectives, expiring loans, season end - Club model gains manager_name column (migration 0006 already added it) - Pack model gains opened_cards and opened_at; pack SELECT queries updated - 9 new integration tests — all 45 pass, clippy clean Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
use axum::{extract::State, Json};
|
||||
use serde_json::{json, Value};
|
||||
|
||||
use crate::{
|
||||
app::AppState,
|
||||
error::AppResult,
|
||||
services::{club as club_svc, profile as profile_svc, season as season_svc},
|
||||
};
|
||||
|
||||
pub async fn get_division(State(state): State<AppState>) -> AppResult<Json<Value>> {
|
||||
let profile = profile_svc::get_active_profile(&state.pool).await?;
|
||||
let club = club_svc::get_club_by_profile(&state.pool, &profile.id).await?;
|
||||
|
||||
// Ensure a season row exists (idempotent)
|
||||
let _ = club; // suppress unused warning; we need club_id later if we extend this
|
||||
let season = season_svc::get_or_create(&state.pool, &profile.id).await?;
|
||||
|
||||
Ok(Json(json!({
|
||||
"division": season.division,
|
||||
"season_number": season.season_number,
|
||||
"season_points": season.season_points,
|
||||
"matches_played": season.matches_played,
|
||||
"matches_remaining": season.matches_remaining(),
|
||||
"record": {
|
||||
"wins": season.wins,
|
||||
"draws": season.draws,
|
||||
"losses": season.losses,
|
||||
},
|
||||
"pts_for_promotion": season.pts_for_promotion(),
|
||||
"started_at": season.started_at,
|
||||
})))
|
||||
}
|
||||
Reference in New Issue
Block a user