store: SBA Scout Rust rewrite Phase 1 complete — foundation layer implemented
This commit is contained in:
parent
0f28eb2fa6
commit
33d078f090
@ -0,0 +1,35 @@
|
||||
---
|
||||
id: c9add129-283a-445a-8dff-4525ec7fa9b6
|
||||
type: decision
|
||||
title: "SBA Scout Rust rewrite Phase 1 complete — foundation layer implemented"
|
||||
tags: [sba-scout, rust, migration, phase-1, sqlx, sqlite, figment, decision]
|
||||
importance: 0.8
|
||||
confidence: 0.8
|
||||
created: "2026-02-27T01:18:18.061642+00:00"
|
||||
updated: "2026-02-27T01:18:18.061642+00:00"
|
||||
---
|
||||
|
||||
# SBA Scout Rust Rewrite — Phase 1 Foundation Complete
|
||||
|
||||
## Status
|
||||
Phase 1 (Foundation) committed as `2005307` on branch `feat/rust-rewrite`.
|
||||
|
||||
## What Was Implemented
|
||||
|
||||
- **Schema creation** (`schema.rs`): raw `sqlx` queries creating all 9 tables with proper constraints. Reviewer caught a missing `UNIQUE` constraint on `lineups.name` — fixed before commit.
|
||||
- **Query functions** (`queries.rs`): 20 async query functions covering teams, players, cards, lineups, sync status, matchup cache, and roster aggregates.
|
||||
- **Config integration** (`main.rs` / `app.rs`): `figment` crate used to load TOML config.
|
||||
- **Added crates**: `csv`, `sha2`, `regex` for later phases.
|
||||
|
||||
## Key Architectural Decisions
|
||||
|
||||
| Decision | Rationale |
|
||||
|---|---|
|
||||
| No ORM — sqlx pool directly | Avoid session pattern complexity; sqlx macros give compile-time query checking |
|
||||
| Separate queries for player + cards (not JOINs) | Simpler, more composable; avoids N+1 differently |
|
||||
| `ON CONFLICT` for upserts | SQLite idiomatic upsert pattern |
|
||||
| TOML config (not YAML) | Python side uses YAML but Rust ecosystem prefers TOML; figment handles both |
|
||||
|
||||
## Repository
|
||||
- Repo: `sba-scouting`, branch `feat/rust-rewrite`, subdir `rust/`
|
||||
- Language: Rust, async runtime: Tokio, DB: sqlx + SQLite
|
||||
Loading…
Reference in New Issue
Block a user