Repository navigation
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GZNK6tcaX74uMbFCJFpNPL
POST /api/v1/friends/gifts/send-all дарит каждому другу, кому сегодня не дарили, одним INSERT … SELECT … ON CONFLICT DO NOTHING; повтор в те же сутки — sent: 0. Правила те же, что у подарка одному: ограничение friend_gifts, уникальность подарка, уведомление получателю. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GZNK6tcaX74uMbFCJFpNPL
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GZNK6tcaX74uMbFCJFpNPL
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Задача: tasks/T-0047-gift-all-friends.md
Что сделано
friends.repository.ts—sendGiftsToAll(from): одинINSERT … SELECT … FROM friendship … ON CONFLICT DO NOTHING RETURNING to_account_id, игровые сутки — тем жеTODAY, что у одиночного подарка. Вернётся только то, что вставил именно этот запрос.friends.service.ts—sendGiftsToAll(actor): ограничениеfriend_giftsзакрывает маршрут (та же ошибка), уведомлениеfriend_giftкаждому получателю (не большеFRIENDS_RULES.maxFriends), один логfriend_gifts_sent_all.friends.controller.ts—POST /api/v1/friends/gifts/send-all→{ data: { sent } }, лимитFRIENDS_LIMITS.change.test/helpers/memory-friends.ts— то же правило на данных в памяти.friends.test.ts(на подмене: три друга и одному уже подарено →sent: 2и уведомления двоим; повтор →0и без новых уведомлений; следующие сутки; нет друзей; не друзьям — нет; ограничение — обе формы отказа; HTTP: 401,{ sent: 2 }, повтор{ sent: 0 }) иfriends.integration.test.ts(живой Postgres: ровно те, кому не дарили; не друзьям строк нет; дружба в обоих направлениях пары; две параллельные «Подарить всем» дали по строке на друга и по одному получателю в сумме).docs/35-stage4-plan.md— §3.8 и описание WP14 (часть 2).Критерии приёмки
POST /api/v1/friends/gifts/send-allдарит каждому другу, кому сегодня не дарили, и отвечает числом. Повтор —0.pnpm docs:checkзелёные (см. ниже).Проверка
prisma migrate deployи прогнал весьpnpm testсTEST_DATABASE_URL: 321 файл, 3204 теста прошли, в том числе интеграционныйfriends.integration.test.ts(8 тестов, среди них новый на живой базе). Без базы — пропуск, как обычно.pnpm lint,pnpm docs:check,pnpm task check,tsc -b,tsc -p tsconfig.tests.json— без ошибок.pnpm buildиpnpm budget: Node 22.22.0 приengines≥ 22.22.3 —pnpm -rне стартует; изменения только на бэкенде, бандл клиента не затронут. Подтвердит CI.Метка:
release: minor.Сводка для команды
📋 СВОДКА: В DEV ВЛИТ PR #255 — ПОДАРИТЬ ВСЕМ ДРУЗЬЯМ
На сервере появился «Подарить всем»: подарок каждому другу, кому сегодня ещё не дарили, одним запросом. Кнопка на экране друзей придёт следующей задачей.
🎁 Как устроено
• правила те же, что у подарка одному: раз в сутки каждому, ограничение подарков закрывает и это
• одним запросом к базе — два нажатия подряд не подарят дважды
🤖 Generated with Claude Code
https://claude.ai/code/session_01GZNK6tcaX74uMbFCJFpNPL