buhapp-backend/internal
ga 0f9e0ce596 Sprint 7: race conditions + read_at + slog
1. chat.EnsureChat: ON CONFLICT DO UPDATE (race-safe)
2. chat.Send: tx.Begin/Commit (atomic INSERT message + UPDATE last_msg_at)
3. chat.MarkRead: добавил member-check (NOT a member -> 403)
4. chat.Message: +ReadAt field
5. migrations/0006: read_at column on messages
6. locations.Nearby: bounding-box prefilter + CTE (haversine только для отфильтрованных)
7. audit.Log: real metadata JSON passthrough (no more 'null' TODO)
8. main.go: slog JSON logger (был stdlib log)
9. WS: 'message_read' event от MarkRead
10. WS push: добавлены read/read_at/edited в message payload
11. Bumped v0.6.0
2026-08-20 21:04:56 +00:00
..
audit Sprint 7: race conditions + read_at + slog 2026-08-20 21:04:56 +00:00
auth Sprint 5: reviews and ratings 2026-08-20 16:20:15 +00:00
chat Sprint 7: race conditions + read_at + slog 2026-08-20 21:04:56 +00:00
config Sprint 6: security hardening 2026-08-20 20:42:22 +00:00
consent Sprint 1: scaffold backend (Go + Fiber + PG + Redis + MinIO) 2026-08-20 15:41:05 +00:00
db Sprint 1: scaffold backend (Go + Fiber + PG + Redis + MinIO) 2026-08-20 15:41:05 +00:00
handlers Sprint 7: race conditions + read_at + slog 2026-08-20 21:04:56 +00:00
locations Sprint 7: race conditions + read_at + slog 2026-08-20 21:04:56 +00:00
preferences Sprint 5.1: JSON snake_case tags + lowercased fields 2026-08-20 16:29:02 +00:00
redis Sprint 1: scaffold backend (Go + Fiber + PG + Redis + MinIO) 2026-08-20 15:41:05 +00:00
reviews Sprint 5.1: JSON snake_case tags + lowercased fields 2026-08-20 16:29:02 +00:00
storage Sprint 6.1: photo upload (MinIO) + storage proxy 2026-08-20 20:59:52 +00:00
telegram Sprint 6: security hardening 2026-08-20 20:42:22 +00:00
users Sprint 6: security hardening 2026-08-20 20:42:22 +00:00
ws Sprint 3: chat with WebSocket 2026-08-20 15:51:05 +00:00