Commit Graph

43 Commits

Author SHA1 Message Date
thibaud-leclere
6cbebb6367 refactor: move WikidataAwardGateway to src/Gateway/WikidataGateway.php
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 11:14:20 +02:00
thibaud-leclere
273ea49ed0 fix: generate hints about the row actor, not the main actor
Hints should help identify the row actor (to find the highlighted letter),
not reveal the main actor directly. Simplified hint generation: no shared
exclusion pools needed since each row has a different actor.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 22:51:22 +02:00
thibaud-leclere
8d413b5c57 fix: review fixes — cache Wikidata calls, add timeout, improve escaping, hide empty popovers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 22:38:05 +02:00
thibaud-leclere
42a3567e1c feat: resolve hint display text in computeGridData 2026-03-30 22:33:51 +02:00
thibaud-leclere
32ae77da53 feat: generate hints per row in GameGridGenerator
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 22:32:51 +02:00
thibaud-leclere
c2efdd4eeb feat: add WikidataAwardGateway for actor awards from Wikidata SPARQL 2026-03-30 22:31:42 +02:00
thibaud-leclere
7f3738007d feat: add findOneRandomByActor to MovieRoleRepository 2026-03-30 22:31:07 +02:00
thibaud-leclere
e3ee26e070 feat: add hintType and hintData columns to GameRow entity
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 22:30:30 +02:00
thibaud-leclere
335a55562f feat: handle non-letter characters in actor names with separator rows
Display spaces, hyphens and other non-letter characters as static cells
instead of input fields, and add separator rows in the grid for
non-alphabetic characters in the main actor's name.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 21:59:11 +02:00
thibaud-leclere
1f80b554fd Remove AppExtension 2026-03-30 21:17:17 +02:00
thibaud-leclere
2f5ba701b6 feat: wrap game in centered card, style abandon button, abandon anonymous game on login
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 19:55:32 +02:00
thibaud-leclere
a6b3a93d5c refactor: use persisted games in HomepageController 2026-03-30 19:46:12 +02:00
thibaud-leclere
884168aa49 feat: add GameController with start and abandon actions 2026-03-30 19:45:39 +02:00
thibaud-leclere
ef155463ab feat: add GameGridGenerator service
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 19:44:50 +02:00
thibaud-leclere
665233425a feat: add Game and GameRow repositories 2026-03-30 19:43:39 +02:00
thibaud-leclere
ff9a48448c feat: add GameRow entity 2026-03-30 19:43:29 +02:00
thibaud-leclere
55145c366f feat: add Game entity 2026-03-30 19:43:18 +02:00
thibaud-leclere
6edc122ff6 fix: address code review issues
- Rename `read` column to `is_read` (PostgreSQL reserved word)
- Wrap navbar + modal in parent div for Stimulus controller scope
- Set temporary filePath before first flush in ImportController
- Use RETURNING clause for atomic incrementProcessedBatches
- Return proper empty 204 response in NotificationController

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 10:27:57 +02:00
thibaud-leclere
4f8eb5f3dc feat: add notification API endpoints 2026-03-29 10:21:30 +02:00
thibaud-leclere
2cfbe191cf feat: add POST /api/imports endpoint 2026-03-29 10:21:02 +02:00
thibaud-leclere
4955c5bde9 feat: add ImportFilmsBatchMessageHandler 2026-03-29 10:20:24 +02:00
thibaud-leclere
98be393e3c feat: add ProcessImportMessageHandler 2026-03-29 10:19:31 +02:00
thibaud-leclere
2d768e8b52 feat: add Messenger messages for import processing 2026-03-29 10:18:35 +02:00
thibaud-leclere
dedc41e237 refactor: extract ActorSyncer service from SyncActorsCommand 2026-03-29 10:18:00 +02:00
thibaud-leclere
bbbfb895af refactor: extract FilmImporter service from SyncFilmsCommands 2026-03-29 10:17:17 +02:00
thibaud-leclere
1bf8afd88e feat: add Notification entity 2026-03-29 10:16:29 +02:00
thibaud-leclere
7be4de6967 feat: add Import entity with batch tracking 2026-03-29 10:11:30 +02:00
thibaud-leclere
5f7ddcd3cc feat: add UserMovie join entity 2026-03-29 10:10:27 +02:00
thibaud-leclere
748b1c7a08 feat: render game grid as React component via SymfonyUX 2026-03-28 13:19:13 +01:00
thibaud-leclere
6d40c4ce08 feat: add registration page with form validation 2026-03-28 13:17:07 +01:00
thibaud-leclere
64949d2ec2 feat: add login page with SecurityController 2026-03-28 13:16:50 +01:00
thibaud-leclere
376a01bff5 feat: add User entity with email/password/roles
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 13:15:40 +01:00
thibaud-leclere
a196fac6c6 Generate grid 2026-01-31 16:17:24 +01:00
thibaud-leclere
1ebf8b99b3 rearrangements 2026-01-20 10:36:39 +01:00
thibaud-leclere
f0af17024e wip sync cast 2026-01-19 23:39:16 +01:00
thibaud-leclere
b764116552 enhance sync films 2026-01-19 23:22:04 +01:00
thibaud-leclere
5e715a40c6 sync actor roles 2026-01-15 21:51:35 +01:00
thibaud-leclere
cb57824861 Add actors and their roles 2026-01-15 20:35:39 +01:00
thibaud-leclere
dcc47fcb65 Starting actors populate 2026-01-15 14:01:45 +01:00
thibaud-leclere
be171b45b4 Enhance params and envs 2026-01-15 13:16:44 +01:00
thibaud-leclere
5c35aff23b Add db, sync movies command 2026-01-14 00:54:49 +01:00
thibaud-leclere
e5d5fe4343 wip 2026-01-13 21:26:00 +01:00
thibaud-leclere
d4a3d32e0a init 2026-01-13 13:59:05 +01:00