Clarified that both JSON and AcBinary protocols are registered for SignalR, allowing client-side selection. Updated keep-alive and timeout settings to use constants with new values. Expanded documentation on protocol registration and startup logging. Improved hub registration details, including endpoints, protocol usage, and logging for LoggerSignalRHub.
Added IsProdEnvironment SignalR endpoint to FruitBankDataController for runtime environment checks. Set production status globally in PluginNopStartup via FruitBankConst.SetIsProd. Minor code and using updates. README.md binary updated.
Added SetConsoleTitleFromCatalog to detect the database environment from the connection string and set the console window title to [PROD] or [DEV] accordingly. Throws on ambiguous catalog names and prints a red warning for production. Switched appsettings.json to use the DEV database. Added Microsoft.Data.SqlClient for connection string parsing. This reduces risk of accidental operations on the wrong database.
- Switched appsettings.json connection string to FruitBank_PROD.
- Added EKÁER TODO for direction logic based on depot country (MGFBANKPLUG-EKAER-T-R6P2).
- Documented need for EkaerHistory delete/regenerate endpoint (MGFBANKPLUG-EKAER-T-N4E7).
Reordered LINQ method calls to filter ShippingDocuments by foreign keys before loading related PartnerDepot entities. This change ensures only relevant related data is loaded, improving query performance without altering logic.
- Switch to DEV DB and split company address street/number
- CustomerCreditWidget: isEkaer now nullable, defaults to true
- FruitBankDataController: add grid layout CRUD endpoints
- EKÁER: require depot for inbound, batch isEkaer for outbound
- Update docs: stricter foreign reporting, depot handling, isEkaer logic, mapping rules, and close depot-grouping issue
- Add OrderDraft (AI-assisted order intake) workflow: API, service, admin UI, and DB tables for draft creation, review, and approval into PreOrders.
- Implement customer attributes block: EKÁER flag, sites, license plates; add modals and AJAX endpoints for editing; auto-assign defaults to new orders.
- Extend order attributes (admin order page) for site/plate selection.
- Enhance PreOrder admin: inline editing, product swap, manual conversion, improved detail/list UI.
- Update localization (EN/HU) and documentation for new features.
- Register new services/routes; refactor PreOrder conversion and product swap logic.
- Improve customer and preorder UI/UX, including search and voice input.
Switched the connection string to the production database in appsettings.json. Enabled Mango.Nop.Services.Loggers.NopLogWriter as an additional logger. Removed an unused using directive from FruitBankDataController.cs.
Updated the connection string to use the FruitBank_DEV database.
Ensured EkaerHistory summary fields (ShippingDate, Partner/Customer)
are consistently set via fruitBankEkaerService.SetSummary when
creating or updating records, improving data consistency for both
inbound and outbound cases.
Refactored EKÁER logic to use EkaerHistoryMapping junction table, decoupling EkaerHistory from direct foreign keys. Grouped inbound declarations by (ShippingId, PartnerId, PartnerDepotId) and enabled atomic creation of histories with mappings. Updated controller endpoints, DI registration, and documentation. Improved error handling, logging, and adjusted method signatures for the new mapping-based approach.
- Switched appsettings.json connection string to FruitBank_DEV.
- FruitBankDataController: GetPartners now loads PartnerDepots; GetPartnerById uses new overload.
- Clarified in EKAER_TODO.md and README.md that carrierText is optional and left empty for outgoing shipments (customer is the carrier).
- Clarified docs-archive skill to use year-month buckets and archive only Closed entries.
- Reopened and updated the Product.Gtin/VTSZ separation issue in EKAER_ISSUES.md.
- Added new TODO (T-V9G3) for grouping tradeCardItems by VTSZ and resolving group names from Category, with requirements and affected code.
- Updated README to reflect VTSZ-based grouping and productName resolution.
- Refactored CreateMissingEkaerHistories to return detailed results (created count + messages), improved grouping, obligation checks, and error handling for both inbound and outbound records.
- Updated AcBinaryHubProtocol to use Bytes mode and set FlushTimeout.
- Enhanced documentation: clarified tradeType and carrier mapping, explained threshold logic and reconciliation workflow, and warned about over-reporting risks.
- Minor code and comment cleanups for clarity.
Refactored GetEkaerHistories to use a new GetByFilter method in EkaerHistoryDbTable for SQL-compatible, flag-based filtering. Added GetEkaerHistoryCount endpoint and supporting CountByFilterAsync method. Improved status partitioning logic and clarified related comments.
Enhanced GetEkaerHistories to accept an EkaerHistoryFilter parameter and apply server-side filtering based on StatusId. Updated logging to include the filter value. The method now returns filtered results according to the selected filter (ToSubmit, Sent, NeedsCompletion, or all), instead of always returning all records.
- Added "Site" section to appsettings.json for company location.
- Increased EKAER threshold values; updated phone format.
- Refactored to use IEkaerSettings DI and registered in startup.
- GenerateEkaerXmlDocument now supports both incoming and outgoing (order) documents.
- Updated EKAER_TODO.md to reflect config and outgoing mapping changes.
- Switched DB connection to FruitBank_PROD in appsettings.json
- Added Ekaer config section: company info, thresholds, exchange rate
- Refactored CreateMissingEkaerHistories to use new settings, load related data, and apply exemption/threshold logic
- Updated controller DI to use EkaerSettings
- Centralized EKÁER config binding in PluginNopStartup
- Documented currency source issue and new value/category logic in EKAER_ISSUES.md and EKAER_TODO.md
Introduced CreateMissingEkaerHistories in FruitBankDataController to generate Pending EKÁER records for inbound shipping documents and completed outbound orders lacking such records from a specified date. The method is user-invoked, idempotent, logs actions and errors, and supports SignalR notifications.
Added IFruitBankEkaerService to FruitBankDataController and introduced two new SignalR methods: GenerateEkaerXmlDocument (generates/updates EkaerHistory for a shipping document) and CreateEkaerHistory (idempotently creates or returns EkaerHistory for a given key and direction). Both methods include detailed logging and entity validation.
- Added SignalR endpoints for EkaerHistory CRUD in FruitBankDataController.
- Introduced EkaerHistoryDbTable with ordering and query helpers.
- Registered EkaerHistoryDbTable in DI and DbContext.
- Updated appsettings.json to comment out NopLogWriter config with explanation.
Introduced PartnerDepotDbTable for managing PartnerDepot entities, registered it in DI, and integrated it into FruitBankDbContext. Updated NameCompatibility and PartnerDbTable for proper mapping and relation loading. Added SignalR controller endpoints for PartnerDepot CRUD and queries.
- Added EKÁER (NAV) service registrations and config to PluginNopStartup
- Extended MgProductDto/IMgProductDto with Sku property
- Raised min search term length to 3 in autocomplete endpoints
- Increased ProductSearchAutoComplete maxResults to 300
- Refactored product search to filter by AvailableQuantity > 0
- Closed GTIN/VTSZ issue in EKAER_ISSUES.md, moved to data model topic
- Added SCHEMA.md with Toon domain model, including Currency property for partners
- Registered `EKAER` topic code and docs location in the per-repo registry.
- Added `Gtin` property to schema for EKÁER VTSZ (customs tariff) mapping.
- Created EKÁER README detailing server-side NAV reporting logic and mapping.
- Added EKÁER issues and TODO docs to track known problems and open mapping decisions.
- Improved cross-references for EKÁER documentation discoverability.
Updated SCHEMA.md to clarify field purposes for Shipping and ShippingDocument entities, emphasizing progressive assignment and nullable status for carrier/truck fields. Changed CargoPartnerId, CargoTrailerId, and CargoTruckId types to nullable (int?). Added git show command for SCHEMA.md in settings.local.json and fixed a missing comma. No structural schema changes.
- Updated controllers and DbTables to support eager loading of CargoPartner and CargoTruck relations.
- Enhanced Shipping and ShippingDocument queries to include related transport entities.
- Extended SCHEMA.md with CargoPartner, CargoTruck, and updated Shipping schema details.
Comprehensive documentation for the new customer pre-order workflow:
- Added docs/PREORDER/README.md with process, entities, lifecycle, and workflow details
- Registered topic code PREO in docs/TOPIC_CODES.md
- Added PREORDER_ISSUES.md and PREORDER_TODO.md for tracking
- Updated README.md, DOMAIN_MODEL.md, MEASUREMENT.md, and topic folder lists to reference pre-orders
- Enhanced SCHEMA.md with pre-order entity clarifications and business logic
- Integrated pre-orders as a fourth main domain workflow
Comprehensively renamed all "Preorder" domain types, services, controllers, models, enums, database contexts, routes, views, JS, localization resources, and documentation to "PreOrder" (PascalCase, capital "O"). Updated all references in backend, frontend, localization, and schema docs for consistency. No business logic changes; this is a naming and normalization refactor.
- Introduced CargoPartnerDbTable and CargoTruckDbTable with DI registration.
- Extended FruitBankDbContext for new entities.
- Added CRUD SignalR endpoints for CargoPartner and CargoTruck.
- Renamed PartnerDbTable.GetByIdNameAsync to GetByNameAsync.
- Minor code style improvements.
Added a section on XML documentation standards to CONVENTIONS.md, clarified references to core and Mango.Nop framework convention docs, and improved formatting. Enabled EmitCompilerGeneratedFiles in Mango.Nop.Core.csproj.
Update DB connection, protocol flush policy, and docs
- Switch appsettings.json to production DB connection string
- Update copilot-instructions.md to reference Rules #1-6
- Set FlushPolicy.DoubleBuffered for AcBinary protocol in PluginNopStartup.cs
Add type-location map and DRY measurement docs
Added a "Type-Location Map" to the plugin README for quick type lookup. Updated MEASUREMENT.md to reference canonical definitions in DOMAIN_MODEL.md for shared measurement logic, reducing duplication. Clarified pallet weighing workflow and fixed the client app doc path. Minor formatting and clarity improvements.
Add repo prefixes and clarify workspace dependencies
Added prefix, type, and layer properties to each @repo block in copilot-instructions.md. Updated own-dep-repos arrays for clearer dependency paths. Adjusted [LOADED_DOCS: ...] prefix instructions to reflect correct file counts. These changes enhance multi-repo management and documentation protocol clarity.
Refactor skill loading protocol in copilot-instructions
Clarified session setup: only two reactive skills are pre-loaded, with three user-gated skills now lazy-loaded on demand. Updated documentation to add "AUTHORITY, RULE SCOPE, AND SKILL INVOCATION" section, revised skill trigger descriptions, and adjusted `[LOADED_DOCS: ...]` prefix logic. Documented docs-archive as a lazy-loaded skill. Added settings.local.json for local file removal permissions. No code logic changes—documentation and protocol only.
- Restructured documentation: added `docs/README.md` to each sub-project, moved LOGGING and SIGNALR docs into dedicated subfolders with their own `README.md`.
- Updated all cross-references to use new topic folder paths and canonical AyCode.Core doc locations.
- Updated `.csproj` files to auto-include all Markdown docs and project-level `README.md` files.
- Removed obsolete single-file docs, replaced with structured content in topic folders.
- Enforced AI Agent Protocol: session setup, output prefix, no-re-read, and mandatory `docs-check` skill after code changes.
- Added domain-critical reminders and navigation guidance to relevant `README.md` files.
- Switched to new `[LOADED_DOCS: N files (+K this turn: ...)]` prefix format in all protocol docs, with examples and enforcement details.
- Documented `docs-discovery` skill, protocol history, and documentation-first coding requirements.
- Added protocol documentation for `Nop.Plugin.Misc.AIPlugin`.
- Changed SQL connection string to use `FruitBank_DEV` in `appsettings.json`.
- Wrapped `IHubProtocol` debug output in `#if DEBUG` in `PluginNopStartup.cs`.