Дмитрий
42409ddec0
feat(billing): E4 — убрать mock pending-баннер (нет платёжного шлюза до Б-1)
2026-05-17 05:24:44 +03:00
Дмитрий
c2cb3af4c6
feat(billing): TopupDialog + Пополнить wiring (E1)
...
TopupDialog (сумма + пресеты + min 100 ₽ валидация) → POST
/api/billing/topup. Кнопки «Пополнить баланс» (шапка) и «Пополнить»
(BalanceCard) открывают диалог; при успехе — refresh кошелька +
транзакций + snackbar.
Sprint 2 Plan C, audit E1 (frontend).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-16 08:16:08 +03:00
Дмитрий
2723261033
fix(billing): clear stale wallet on retry + retry-button test (Task 3 review)
...
Code-quality review fixups: loadWallet() catch-блок сбрасывает wallet в
null (нет ложного рендера устаревших данных при неудачном повторе);
тест на кнопку «Повторить» (re-fetch + переход в success-состояние).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-16 07:44:19 +03:00
Дмитрий
cc624543e9
feat(billing): BillingView wallet + BalanceCard real API (E3)
...
api/billing.ts (getWallet) + BillingView тянет GET /api/billing/wallet
на mount (шапка + BalanceCard, loading/error-state). BalanceCard на
реальные props с nullable-тарифом. featureLabel для feature-слагов.
Sprint 2 Plan C, audit E3 (frontend pt1).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-16 07:32:59 +03:00
Дмитрий
c8012896e3
phase2(billing): BillingView - финансовый экран биллинга и тарифов
...
- BillingView (/billing): page-head со stats (кошелёк/лиды/runway-дни) + pending
banner v-alert info («1 платёж в обработке через ЮKassa, auto-cancel 30 мин»)
+ 3 wallet-cards (Кошелёк ₽ primary card теало-нуар + LIVE; Баланс лидов
ГЦК; Тариф «Команда» 990₽/мес + 3 фичи) + transactions panel (4 tabs +
v-data-table 5 колонок: Дата/Операция/ID/Статус-chip/Сумма ± JBM tnum) +
invoices list (PDF + 1С 8.3 XML).
- composables/mockBilling.ts соответствует схеме v8.7 §4.4-4.5: 8 mock
транзакций (types: topup/lead_charge/refund/tariff_charge; statuses:
pending/completed/rejected) + 4 invoices (pdf/xml_1c83) + pending payment.
- Маршрут /billing (meta.layout=app) в router + web.php.
Format helpers: «+ N ₽» / «− N ₽» / «— 0 ₽» rejected; Intl.NumberFormat ru-RU.
Vitest +11 (всего 90/90 за 7.96s):
- заголовок + page-stats nbsp regex + pending banner + 3 wallet-cards + 3 фичи
тарифа + 4 tabs + дефолт «Все» 8 строк + format «+/−» + rejected «— 0 ₽» +
4 invoice rows + PDF/1С 8.3 XML labels.
Регресс: lint+type+format OK; vitest 90/90; vite build (BillingView lazy-chunk;
VDataTable вынесен в общий chunk 79.84KB - shared с DealsView); story:build
16/23 за 32.16s; Pest 48/48 за 4.89s.
CLAUDE.md v1.26->v1.27, реестр Открытых_вопросов v1.35->v1.36.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-08 18:39:49 +03:00