mirror of
https://github.com/Patiun/com.gregkilmer.www.git
synced 2026-11-08 04:08:24 +00:00
Phase 6: sync jobs, inquiry and order forms
- Sync scheduler in the content service with a per-job cache (sync_cache), sync_runs reporting and Healthchecks pings. Jobs: Archidekt, BoardGameGeek, cover art (Open Library, TMDB, AniList), Suwayomi and Kavita reading progress, Bambuddy filament and Homebox material stock. A note's own value always wins over a synced one. - PersonalReader: updates only Library notes with a matching anilistId, changes to Greg's notes are held for review; Reading series with no note show as suggestions on the admin Overview. - /api/inquiries and /api/orders: Turnstile, rate limits, a saved copy in the content service (intake token) plus email over SMTP. Orders are re-checked against the live notes: accepted only when the category's ordersOpen is true and the line has capacity. - Admin Inbox for saved submissions. Options' inStock is optional so synced stock can fill it. All settings from process.env; .env.example per service. - Sources could not be reached from the build environment; parsers are tested against fixtures labelled as not live. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"_sample": "Hand-written from Archidekt's deck response shape; not a live response.",
|
||||
"id": 1234567,
|
||||
"name": "Sample Atraxa Superfriends",
|
||||
"deckFormat": 3,
|
||||
"featured": "https://storage.googleapis.com/topdekt-user/images/sample-featured.jpg",
|
||||
"customFeatured": "",
|
||||
"private": false,
|
||||
"categories": [
|
||||
{ "id": 1, "name": "Commander", "isPremier": true, "includedInDeck": true, "includedInPrice": true },
|
||||
{ "id": 2, "name": "Ramp", "isPremier": false, "includedInDeck": true, "includedInPrice": true },
|
||||
{ "id": 3, "name": "Maybeboard", "isPremier": false, "includedInDeck": false, "includedInPrice": false }
|
||||
],
|
||||
"cards": [
|
||||
{
|
||||
"quantity": 1,
|
||||
"categories": ["Commander"],
|
||||
"card": {
|
||||
"uid": "d0d33d52-3d28-4635-b985-51e126289259",
|
||||
"oracleCard": { "name": "Atraxa, Praetors' Voice", "colorIdentity": ["White", "Blue", "Black", "Green"] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"quantity": 1,
|
||||
"categories": ["Ramp"],
|
||||
"card": { "uid": "aaaa1111-0000-0000-0000-000000000000", "oracleCard": { "name": "Sol Ring", "colorIdentity": [] } }
|
||||
},
|
||||
{
|
||||
"quantity": 34,
|
||||
"categories": ["Land"],
|
||||
"card": { "uid": "bbbb2222-0000-0000-0000-000000000000", "oracleCard": { "name": "Forest", "colorIdentity": ["Green"] } }
|
||||
},
|
||||
{
|
||||
"quantity": 1,
|
||||
"categories": ["Maybeboard"],
|
||||
"card": { "uid": "cccc3333-0000-0000-0000-000000000000", "oracleCard": { "name": "Lightning Bolt", "colorIdentity": ["Red"] } }
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user