Yükleme

Unreleased

Product brand association

  • DB admins: add nullable BrandID to Products referencing Brands with SET NULL delete semantics so removing a brand detaches existing products instead of cascading deletes.

  • DB admins: backfill Products.BrandID by joining on Brands.OwnerCompanyID where it matches Products.CompanyID, leaving unmatched rows null for manual review.

  • App clients: product create/edit forms surface an accessible brand autocomplete backed by /api/brands/suggestions, persisting the selected BrandID while announcing resolver outcomes for screen readers.

  • Import reviewers: CSV preview now resolves incoming brand values through IBrandResolver, stores the resulting BrandID, and highlights per-product status alongside a summary card.

AI task schema

  • DB admins: extend AiTasks.Kind (tinyint) to reserve the ImageGeneration value for upcoming Azure OpenAI image workflows.

  • DB admins: allow nullable IdempotencyKey values on AiTasks and AiTaskOutbox, enforce filtered unique indexes on (Kind, ConversationId, IdempotencyKey), and verify RowVersion concurrency tokens remain configured for OCC pipelines.

  • App servers: redeploy AI conversation services so duplicate submissions reuse existing tasks, bounded OCC retries guard the scheduler, and idempotent handlers log retry/skip outcomes for diagnostics.

  • App clients: treat IdempotencyKey as optional when calling AI conversation endpoints; provide a value only when deduplication is required while filtered indexes maintain uniqueness when present.

AI retention tooling

  • App servers: raise the default AI retention window to 180 days, persist ExpiresUtc for table transcripts, and update AiRetentionService so expired Table Storage messages are purged alongside SQL artefacts. Manual GDPR deletes can target a single conversation (EraseConversationAsync) or a tenant prefix (EraseTenantAsync). See Actualog.MVC/docs/admin/ai-conversation-retention-runbook.md and the refreshed runtime flow doc for operations guidance.

Product-company relationship roles

Company relationship multi-role UI

  • App clients: category and product linking dialogs now submit companyTypes arrays so multiple business roles can be applied in a single request. Update custom integrations to post role collections or masks via the same payload key.

  • Docs: documented the selector behaviour in Actualog.MVC/docs/ui/components/company-role-selector.md.

  • Catalog linking continues to rely on catalog type instead of per-company roles; no database key changes are required for CatalogsToCompanies.

  • Search services: product indexing now stores normalized company_roles tokens so Lucene filters can combine multiple role requirements. Rebuild the product index after deploying the tooling update.

  • App clients: /companies/ProductCompaniesListPartial accepts roles query arrays and honours multi-role filters during Lucene-backed searches.

  • API consumers: /api/products/list responses include linkedCompanyRoleMask, linkedCompanyRoles, and linkedCompanyRoleNames projections sourced from linked companies to support client-side role filtering.

  • DB admins: add a Roles (bigint) column to ProductsToCompanies storing the combined CompanyType role mask. Keep the existing Type column for legacy readers but plan to migrate consumers to the flag column before it is removed.

  • App servers: update any integrations that create product/company links to populate Roles (or convert legacy CompanyType values through the new helper methods) and treat the Type property as deprecated.

  • App clients: Product create/update DTOs and the data upload DTO now expose companyRoles/companyRoleMask fields. Update import workflows and API consumers to include role selections alongside companyId when creating products or staging uploads.

  • API consumers: /api/products create/update endpoints now combine submitted role collections into a bitmask before persisting links and fall back to the built-in manufacturer default when callers omit roles.

  • Import operators: staging promotion reads companyRoleMask/companyRoles metadata from batches and applies the resulting mask when creating ProductsToCompanies links. Requeue existing ReadyToCreate rows (or rerun the promotion stage) after deployment to backfill role masks on historical imports.

For experts

  1. Sign up and fill out your profile and don't forget to upload your best photo.
  2. Join one or more professional communities and define your area of expertise using facets;
  3. Find categories in which you are an expert, add them to favorites and follow experts in selected categories.
  4. Invite colleagues to join Actualog, communicate, share knowledge and work together.
  5. Look through our help section and focus on categories and attributes.
  6. Start working as an Expert, add more information about existing categories, and create new categories or edit translations and comments by other Experts.

For Companies and organizations

  1. Create company profile, add a description, and fill information at different languages.
  2. Add one or more communities to company profile, select facets to specify produced products.
  3. Send invitations to your colleagues to join the expert community Actualog.
  4. Add product categories, which produces, buys, sells or serves your company. Create a new category, if no one has yet added.
  5. Become familiar with the Partner Programs, choose a Partnership Programm for your company to support a category, a community or the whole project.