Составлено на основе обзора текущего состояния проекта (2026-08-16). Layihənin cari vəziyyətinin nəzərdən keçirilməsi əsasında tərtib edilib (16.08.2026).
- Отправка инвойса на email клиента —
EmailService/MailKit уже есть (используется для confirm-email), а PDF-экспорт (ExportToPdfAsync) тоже готов. Не хватает только связки: кнопка/эндпоинт «отправить PDF клиенту наCustomer.Email». - Напоминания о просрочке (dunning) —
InvoiceSchedulerHostedServiceуже раз в час переводит просроченные инвойсы вOverdue; логично добавить туда же отправку email-напоминания клиенту при переходе вOverdue, либо за N дней доDueDate. - Каталог товаров/услуг —
InvoiceRow.Serviceсейчас просто строка, вводится вручную при каждой строке инвойса. Отдельная сущностьProduct/ServiceItem(name, default rate, VAT) с автоподстановкой в форму строки инвойса и отчёте «по услугам» (ReportsController: services) избавила бы от постоянного ре-тайпинга и опечаток. - Массовые операции в UI — например, массовая архивация/экспорт нескольких инвойсов сразу (сейчас всё поштучно,
/{id}/archive,/{id}/export).
- Мультивалютность — в CLAUDE.md явно отмечено:
Currencyзахардкожена как"AZN", не персистится. Если это когда-нибудь понадобится — нужна реальная колонка + пересчётInvoiceTotalsCalculator. - Партнёрский/клиентский портал — read-only ссылка для клиента, чтобы посмотреть/оплатить конкретный инвойс без логина (публичный токен-URL). Сейчас всё за JWT, у клиента нет способа увидеть свой счёт кроме как получить PDF по почте.
- Онлайн-оплата — сейчас
Paymentфиксируется вручную администратором (bank transfer/cash предположительно). Интеграция с платёжным шлюзом (Stripe/локальный) закрыла бы цикл «выставили → клиент оплатил онлайн → статус меняется автоматически». - Notification preferences / email-дайджест — SignalR realtime уже есть для UI, но нет email-уведомлений владельцу (например «3 инвойса просрочены», «оплата получена»).
- Расширенные отчёты — сейчас только customers/services/invoice-status. Не хватает: P&L / cash-flow по периодам, прогноз поступлений по
DueDate, экспорт отчётов в Excel/CSV/PDF (сейчас экспорт PDF есть только для отдельного инвойса).
- Мультивалютность + мультиязычные PDF — сейчас PDF, судя по всему, не локализован под
az/engязык клиента. - Роли/права по командам — сейчас
UserRoleтолькоUser/Admin(админ вообще отрезан от бизнес-эндпоинтов). Если появится мультипользовательская компания — нужна модель «сотрудников» с разными правами на инвойсы одной компании, а не строгий 1:1UserId. - Webhooks/API для интеграций — если планируется интеграция с бухгалтерскими системами.
- Fakturanın müştərinin e-poçtuna göndərilməsi —
EmailService/MailKit artıq mövcuddur (confirm-email üçün istifadə olunur), PDF ixracı (ExportToPdfAsync) da hazırdır. Yalnız bunları bir-birinə bağlamaq lazımdır: PDF-iCustomer.Emailünvanına göndərmək üçün düymə/endpoint. - Gecikmə xatırlatmaları (dunning) —
InvoiceSchedulerHostedServiceartıq saatda bir dəfə gecikmiş fakturalarıOverduestatusuna keçirir; eyni yerdə müştəriyəOverduestatusuna keçdikdə və yaDueDate-dən N gün əvvəl e-poçt xatırlatması göndərmək məntiqli olardı. - Mal/xidmət kataloqu — hazırda
InvoiceRow.Servicesadəcə mətn sətridir və hər faktura sətrində əl ilə daxil edilir. AyrıcaProduct/ServiceItemobyekti (ad, standart qiymət, ƏDV) faktura sətri formasına avtomatik doldurma və «xidmətlər üzrə» hesabatda (ReportsController: services) təkrar yazma və səhvlərin qarşısını alardı. - UI-də kütləvi əməliyyatlar — məsələn, bir neçə fakturanın eyni anda arxivləşdirilməsi/ixracı (hazırda hər şey tək-tək,
/{id}/archive,/{id}/export).
- Çoxvalyutalılıq — CLAUDE.md-də açıq qeyd olunub:
Currency"AZN"olaraq sabitlənib, saxlanılmır (persist edilmir). Əgər bu lazım olarsa — həqiqi sütun +InvoiceTotalsCalculator-un yenidən hesablanması tələb olunur. - Tərəfdaş/müştəri portalı — müştərinin girişsiz (login olmadan) konkret fakturaya baxması/ödəməsi üçün read-only link (ictimai token-URL). Hazırda hər şey JWT arxasındadır, müştərinin fakturasını görməyin yeganə yolu e-poçtla PDF almaqdır.
- Onlayn ödəniş — hazırda
Paymentadministrator tərəfindən əl ilə qeyd olunur (təxminən bank köçürməsi/nağd). Ödəniş şlüzü (Stripe/yerli) inteqrasiyası «faktura kəsildi → müştəri onlayn ödədi → status avtomatik dəyişdi» dövrəsini tamamlayardı. - Bildiriş tənzimləmələri / e-poçt icmalı — UI üçün SignalR realtime artıq mövcuddur, lakin sahibə e-poçt bildirişləri yoxdur (məsələn, «3 faktura gecikib», «ödəniş alındı»).
- Genişləndirilmiş hesabatlar — hazırda yalnız customers/services/invoice-status var. Çatışmır: dövrlər üzrə P&L / cash-flow,
DueDateüzrə daxilolmaların proqnozu, hesabatların Excel/CSV/PDF formatında ixracı (hazırda PDF ixracı yalnız ayrı-ayrı fakturalar üçündür).
- Çoxvalyutalılıq + çoxdilli PDF — hazırda PDF, görünür, müştərinin
az/engdilinə uyğun lokallaşdırılmayıb. - Komanda üzrə rollar/hüquqlar — hazırda
UserRoleyalnızUser/Admin-dir (admin biznes endpoint-lərindən tamamilə kənarlaşdırılıb). Əgər çoxistifadəçili şirkət modeli lazım olarsa — bir şirkətin fakturalarına fərqli hüquqlarla baxan «işçilər» modeli tələb olunur, sərt 1:1UserIdəvəzinə. - İnteqrasiyalar üçün Webhooks/API — mühasibat sistemləri ilə inteqrasiya planlaşdırılırsa.