Add engagement endpoints GET /engagements and GET /engagements/{id}
Add Engagements tab, detail page, and dashboard integration
- posApi: add Engagement types, getEngagements, getEngagementById - posDomainLabels: add getEngagementStatusLabel - PipelineEngagementsTab: AG Grid with domain/...
Complete remaining items (validation, product cache, status, recent items, focus); revert lazy load to fix build
Finish remaining plan items – low-stock warning, date filters, plan checkboxes
- Order Create: low-stock warning when adding product with trackInventory - Orders tab: date range filter (last 7 days, last 30 days) - Applications tab: date r...
Phase 4–5 – Dashboard reporting, error handling, a11y
Phase 4 – Dashboard & reporting: - Revenue by period (week, month, quarter) - Order count by status (DRAFT, AUTHORIZED, PAID, CANCELLED, REFUNDED) - Application...
Align Pipeline and Settings UI with commerce backend
- Update order status colors to match backend (DRAFT, AUTHORIZED, PAID, CANCELLED, REFUNDED) - Update application status colors (DRAFT, SUBMITTED, EXPIRED, CANC...
Switch DataLoader to CommerceService
- Use CommerceService instead of POSService, RetailProductService, RetailInventoryStockService - createProduct, createOrUpdateStock, createRetailOrder, createMo...
Switch POS controllers to CommerceService
- POSController uses CommerceService instead of POSService - RetailProductController uses CommerceService instead of RetailProductService - RetailInventoryContr...
Pos 豆を商取引パッケージに置き換える
- コマースパッケージを追加(注文、インテント、提供、在庫商品、インベントリプールなど) - POSService、RetailProductService、RetailInventoryStockServiceを取り替えるCommerceServiceを加えて下さい - すべてのdonotmodify.dao.bea...
Full-page views, AG Grid, domain support, create screens
- Add getMortgageApplication(id) to posApi - Replace Orders tab: MUI Table -> AG Grid, row click -> /pipeline/orders/[id] - Replace Applications tab: cards -> A...
POSServiceのエンタープライズ検証
- createRetailOrder: リクエストの null チェック - createLineItem: null チェック、数量 > 0、単価 >= 0 検証
Enterprise-grade POS UI and API
- posApi: POSApiError class, fetchWithError, structured error handling - useToast + POSToast: centralized snackbar for success/error feedback - posUtils: format...
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 - PipelineOrde...
Resolve Map type inference in POS controllers for CI compilation
- Use explicit Map<String, Object> in ResponseEntity Map.of() calls - Fixes 'incompatible types: inference variable V has incompatible bounds' when mixing DTO...
Add POS controllers for retail products, inventory, and orders
- RetailProductController: CRUD for products - RetailInventoryController: inventory stock management - POSController: orders and mortgage applications
DataLoader IOException import and mock lead assignment FK errors
- Add missing java.io.IOException import for copyJavaEnumsToNextJS - Use saveLead instead of saveLeadWithAssignment for mock data to avoid lead_assignments FK...
POS/インベントリドメインエンティティティ、DTO、リポジトリ、サービスを追加
- POS 豆を追加(小売、レンタル、住宅ローン、サブスクリプション、ベンダー) - 小売製品、小売在庫、小売注文、MortgageApp DTOを追加 - リテール製品サービス、リテール在庫サービス、POSサービスを追加 - 小売、住宅ローン、レンタル、サブスクリプション、ベンダーのリポジトリを追加します。 - Em...
POS restructure: API via APIService, Settings for admin, Pipeline for users
- API proxy: POS requests forward to APIService (relays to SecurityService) - Settings: New POS System section under main settings + /settings/features/pos - PO...
Update Traefik routes: themes.* assets now only load from k1m1 minio instead of balancing across k0m1, k1m1, and k2m1
Stabilize connection line physics and mouse proximity
- Only apply mouse proximity force after mouse has moved (avoids 0,0 affecting lines on load) - Guard mouse position with Number.isFinite before use - Clamp con...
セクションのタイトルのアンダーラインとグリッドを下部セクションに統一
- var(---color-primary)をCRM、E-Mail、電話セクションのアンダーラインに使用する - 一貫したレイアウトのためのEメールおよび電話(3枚のカード)のためのlgの3列の格子を使用して下さい
市場タブを修正, 市場別の状態, フィルターオプション, リードIDプレフィックスL
- 市場タブ:リードによるフィルタ。 marketIdとvendorProductIds 市場が選択されると - ステータス/サブステータス: カラムフィルタオプション(マーケットアウェア)で使用可能なStatusesを使用します。 - すべての市場:サービスと製品のステータスオプション(利用可能なステータス=すべて)...
ビューヘッダーの戻るボタン、ビューから戻ってきたときにフィルターを復元する
- HeaderBar: リードブラウザー ボタン (ArrowBack) をリード情報ヘッダーに追加します。 - LeadManager: プレジストフィルタ/タブをセッションへ リードを開く前にストレージ - LeadManager:ビューページから戻ったときにマウントにフィルタ/タブを復元する
Switch to base28, remove 5 and S from alphabet
- Rename toBase30 to toBase28; use 28-char alphabet - Lead/doc formatters now use toBase28 internally
Agent column from assignedEmployee, base30 lead/doc ID formats
- Agent column shows assignedEmployee.fullName or 'Unassigned' - Add assignedEmployee to Lead type; use valueGetter for sort/filter - LeadManager: use toBase30L...
Shared toBase30 in app/utils/base30, use in LeadManager and DocManager
Trigger pipeline - pull latest kamo-shared-library with vendorProduct population
リード獲得時にvendorProductリレーションを生成
GetLeadsByOrganizationId() をアップデートして @Transient ベンダーを出力します。 vendorProductId を持つ各リードのフィールド。 これはベンダーを確実にします リードDTOマッピングでは、製品データが利用できます.
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 datag...
ステータス、サブステータス、ソース、日付作成フィールドの追加
- ステータス、サブStatus、ソース、DateCreated、およびisActiveフィールドをリードエンサー - フロントエンド互換フィールド(status、subStatus、ソース)でリードDTOを更新 createAt、PrimeContact、ベンダー、製品、agentAssigned - フロントエンド...
文字列から従業員への参照へのレファクタリード割り当て
- Lead.assignedUser(String)をLead.assignedEmployee(Employee)に変更 - 代入履歴を追跡するためにLeadAssignmentのエンティティティティを追加 - 様々な代入タイプでLeadAssignmentType列を追加 - 従業員のリードクレジットを追跡するた...
Add mouse proximity physics effect to connection lines
- Checks 5 points along the curve for proximity detection - 80px effect radius - lines respond when mouse gets close - Force strength uses inverse square fallof...
Destination task item border matches line animation
- New destinationGlow keyframe animation with 4 phases - Border color animates through amber → gold → white → gold → amber - Matches the flowing gradient animat...
Auto-expand answers and highlight connected items
Answer Input (TaskSideBar): - New answer field appears immediately when typing in last field - Focus stays in current field while typing - Empty placeholder fie...
New answer field maintains focus while typing
- Added local state for new answer input (newAnswerValue) - Input no longer triggers array update on each keystroke - Answer is added on blur or when pressing E...
Auto-expanding answers and consistent background colors
TaskSideBar (Task Item Settings): - Removed "Add Answer" button - Added auto-expanding input field that appears after existing answers - Typing in the placehold...
Restore task item selection while keeping line clicks
- SVG container back to pointer-events-none (allows clicks to pass through) - Hit area paths use pointer-events: stroke (only the line itself is clickable) - Vi...
Add clickable relationship lines with selection and delete
- Lines can now be clicked to select them (with wider hit area for easier clicking) - Selected lines highlight in amber/orange color with animated flowing gradi...
