Журнал змін
Что нового.
Все усовершенствования платформы, как только она будет запущена.
· kamo-shared-library
Перевірка підприємства в POSService
- створюватиRetailOrder: null check на запит - створенняLineItem: null check, кількість > 0, unitPrice >= 0 Перевірка
· kamo-internal
Enterprise-grade POS UI and API
- posApi: POSApiError class, fetchWithError, structured error handling - useToast + POSToast: centralized snackbar for success/error feedback - posUtils: formatCurrency, formatDate, toCSV, downloadBlob - PipelineOrdersTab: search, sort, pagination, CSV export, skeleton loading, toast notifications, empty state CTA, confirm empty order - PipelineApplicationsTab: search, CSV export, skeleton, toast - PipelineProductsTab: search, delete confirmation dialog, skeleton, toast - PipelineInventoryTab: toast notifications - PipelineDashboardTab: skeleton loading, refresh, export summary, toast - PipelinePOSDomainConfigTab: toast on save
· kamo-internal
POS domain config, retail order line items, dynamic pipeline tabs
- Add getPOSConfig/updatePOSConfig to posApi, posDomainLabels utility - Extend createOrder with lineItems, add getOrder, RetailOrderLineItem type - PipelineOrdersTab: product-based order creation, line item selector, order detail drawer - Pipeline: dynamic tabs from POS config, domain-specific titles (Orders, Applications) - PipelineDashboardTab: metrics filtered by enabled domains - Settings POS: Domains tab with enable/disable toggles for RETAIL, MORTGAGE, RENTAL, VENDOR, SUBSCRIPTION - Empty state when no domains enabled
· SecurityService
Add POS controllers for retail products, inventory, and orders
- RetailProductController: CRUD for products - RetailInventoryController: inventory stock management - POSController: orders and mortgage applications
· kamo-shared-library
Додайте POS/інвентарні домени, DTOs, репозиції та послуги
- Додати POS квадроцикли (порожній, прокат, іпотека, підписка, постачальник) - Додати роздрібний товар, роздрібний інвентар, роздрібнийЗамовити, іпотечний додаток - Додати роздрібну товарообігу, роздрібну інвентарюStockService, POSService - Додати репозиторії для роздрібної торгівлі, іпотечного, оренди, підписка, постачальник - Оновлення EmbRecordState
· kamo-shared-library
Попульована компаніяПродукти зв'язки при fetching веде
Update GetLeadsByOrganizationId() для того, щоб заселити @Transient постачальникПродукт поле для кожного свинцю, який має постачальникаProductId. Це забезпечує постачальників і дані продукту доступні для картування LeadDTO.
· kamo-internal
Improve lead grid with base30 IDs, raven icon, All Markets tab, and Market column
- Add toBase30() function for consistent ID representation across LeadManager and DocManager - Fix Grim status icon in tabs to use raven.ico (matching the datagrid status renderer) - Add "All Markets" tab as first option in market tabs to show leads from all markets - Add Market column between Street and Status columns in datagrid - Update currentMarket logic to support tab 0 as "All Markets" (no filter)
· kamo-shared-library
Додавання статусу, підстатку, джерела та дати
- Додано статус, субстатус, джерело, датаCreated, і isActive поля для Провідної особи - Оновлено LeadDTO з фронтенд-сумісними полями (статус, субстатус, джерело, JavaScript licenses API Веб-сайт Go1.13.8 - Додано первиннийЗв'язатися з нами - Додано @PrePersist гачком, щоб встановити значення за замовчуванням для нових призводить Це закріплює провідну сторінку сітки, що відображає порожні стовпчики для контакту, статусу, субстатус, постачальник, продукт, джерело, агент, створених і призначених полів.
· kamo-shared-library
Рефактор Lead від String до працівника посилання
- Змінений Lead.assignedUser (String) для Lead.assignedEmployee (Employee) - Додано провідну асоціацію з метою відстеження історії - Додано LeadAssignmentType Enum з різними типами завдань - Додано LeadCredit суб'єкта господарювання для відстеження корпоративних клієнтів - Додано LeadAllotment суб'єкта господарювання для управління працівниками - Додано відповідні репозиторії та послуги - Оновлено LeadService для автоматичного запису завдань - Оновлено LeadDTO і запит ДТО для нової структури - Додані методи надання послуг з перерозподілу працівників за організацією - поля дата-time бази даних тепер використовують DB-рівневі за замовчуванням для консистенції
· KlusterServices
Add HTTP to HTTPS redirect middleware and IngressRoute
- Create redirect-to-https middleware for permanent redirects - Add catch-all IngressRoute on web entrypoint to redirect all kamocrm.com domains to HTTPS - Fixes 404 errors when users access sites via HTTP instead of HTTPS
· KlusterServices
Add automatic *** secret creation
- Create *** secret on both k1m1 and k2m1 - Secret contains MINIO_CURRENT_HOST pointing to k0m1 MinIO instance (http://10.8.0.1:9000) - Fixes kamowssecurity-deployment CreateContainerConfigError
· kamo-internal
Reorganize form layout for better field grouping
· kamo-internal
Reposition Add Lead tab and improve market tab UX
· kamo-internal
Add live tab label updates based on first/last name input
· kamo-internal
Convert Add Lead button to tab and implement data persistence
· kamo-internal
Overhaul lead creation UI with pane-based interface
· kamo-internal
Перемістити кнопку Lead, щоб фільтрувати рядок і конвертувати в діалогове вікно
· kamo-internal
Reorganize lead creation form into elegant two-column layout
- Split form fields into two columns: contact/personal info (left) and lead/business info (right) - Add visual separation with semi-transparent backgrounds, borders, and shadows - Improve form organization and visual hierarchy - Maintain responsive design for mobile devices
· kamo-marketing
Увімкнути Turbopack для швидкого будівництва (Далі.js 16)
· kamo-register
Увімкнути Turbopack для швидкого будівництва (Далі.js 16)
· kamo-login
Увімкнути Turbopack для швидкого будівництва (Далі.js 16)
· kamo-internal
Enable Turbopack for faster builds (Next.js 16)
· kamo-internal
Редизайн генерує форму з повними полями імен, правильним випаданням, сільським полем, поліпшенням макета телефону
· kamo-internal
Покращення форми створення свинцю з сучасними UI, перевірка, обробка помилок та поліпшення UX
· kamo-shared-library
Додати підтримку розширення телефону для створенняLeadRequest, UpdateLeadRequest і LeadDTO
· kamo-internal
Додати LeadProspectType, постачальник/продукт, кращийЗв'язок Час, розширення телефону/isText, і житлові іпотечні поля для створення
· kamo-shared-library
Додати продажСубТ поле для LeadMarketDTO для виявлення іпотечного поля
- Додано продажСубТ поле, щоб відрізняти від батьківського типу та підтипів - При продажуТип є батьком (наприклад, RESIDENTIAL MORTGAGE), торговий пункт стає батьком (СЕРВІС) і продажамШабТ стає дитиною (РЕЗИДЕНТАЛІ MORTGAGE) - Це дає можливість самостійно виявити, коли показати іпотечні поля від LeadClaimMortgage. Навігація
· kamo-internal
Add missing Next.js API routes for leads endpoints
- Added /api/security/leads route for GET (all leads) and POST (create lead) - Added /api/security/leads/[id] route for GET, PUT, DELETE operations - Added **************** route for market configuration - Fixes 'Unknown error' when accessing /leads page by properly proxying requests to backend
· SecurityService
Add backend validation for required fields in lead imports
- Add validateRequiredFields method to check required fields before import - Validate email, firstName, and lastName are present - Validate mortgage-specific fields (loanAmount) when market is mortgage type - Skip rows with missing required fields and add to error list - Use LeadMarketService to determine market type for validation
· kamo-internal
Add validation for required fields in lead imports
- Mark email, firstName, and lastName as required fields in leadFields.ts - Add validation in handleStartImport to check all required fields are mapped - Add validation in ReviewStep to show errors for missing required field mappings - Display user-friendly error messages when required fields are missing

Твій всесвіт чекає.
Почати безкоштовно за декілька хвилин. Додати продукти, коли ви будете готові — без перенесення, без нових реєстрацій.
Безкоштовно назавжди — не потрібна кредитна карта