Submit a vote for model comparison
00000000-0000-0000-0000-000000000000)comparisons table record"left": Vote for left/agent1 model"right": Vote for right/agent2 model"tie": Both models equally good"both-bad": Both models equally baduserId from request body if providedsub claim if not providedvoteChoice insteadcomparison_id → request.ComparisonIdvote_choice → request.VoteChoice (lowercased)user_id → userId (from body or JWT)created_at → NOW()ai_models table: Win/loss count updates not enforced by server contractcomparisons table: Winner field update not enforced by server contract| Code | HTTP | Cause | Controller Line |
|---|---|---|---|
| N/A | 401 | JWT missing or invalid | Middleware |
INVALID_REQUEST | 400 | ComparisonId null or empty GUID | 26-34 |
INVALID_REQUEST | 400 | VoteChoice null/empty/whitespace | 36-44 |
VOTE_ERROR | 500 | Service exception | 71-79 |
"left" (Lines 59-63)agent1 position"right"agent2 position"tie""both-bad"voteChoice (“left”/“right”) to actual model namerequest.UserId (if provided and valid GUID)sub claimClaimTypes.NameIdentifier claimnull (if none available)null userId to service may cause service-level error (not documented)