FruitBankHybridApp/FruitBank.Common/docs/DATAMODEL/DATAMODEL_ISSUES.md

3.4 KiB

DATA-MODEL — Known Issues

Companion to README.md. Topic DMODEL, prefix FBANKAPP → entry IDs FBANKAPP-DMODEL-I-<RAND> (issue) / -B- (bug). ID format, Status vocabulary, type codes, archival → ../../../.github/TOPIC_CODES.md (→ framework registry).

Scope: a FruitBank entitások adatmodell-normalizálási teendői (nopCommerce referencia-FK-k, azonosító-szétválasztások).

Active entries

FBANKAPP-DMODEL-I-K3D9: A Partner-entitások nopCommerce referencia-mezői szabad string-ek, FK helyett

Status: Open · Priority: P3 · Type: I (adatmodell / normalizálás)

A PartnerBase (és így Partner / CargoPartner) + a CargoTruck a nopCommerce referencia-adatait szabad string-ként tárolja, ahelyett hogy a megfelelő nopCommerce tábla Id-jára FK-zna:

Mező Jelenlegi Helyes (hosszú táv)
CountryCode (string) szabad szöveg (pl. "HU") nopCommerce Country.Id FK; a megjelenített kód a Country.TwoLetterIsoCode-ból — PartnerBase + CargoTruck
Currency (string) szabad szöveg (pl. "EUR") nopCommerce Currency.Id FK; a megjelenített kód a Currency.CurrencyCode-ból — PartnerBase

Hatás: működik (a string-eket kézzel töltjük), de nincs hivatkozás-integritás, és a kódok elgépelhetők / inkonzisztensek lehetnek. Az EKÁER-leképezés a string pontosságára támaszkodik (seller/destination/vehicle Country, és a value→HUF deviza forrás-pénzneme).

Javítási irány: FK-oszlop (CountryId, CurrencyId) + navigation a nopCommerce táblákra; a megjelenített/exportált kód a referencia-entitásból.

Affected:

  • FruitBank.Common/Entities/PartnerBase.csCountryCode, Currency
  • FruitBank.Common/Entities/CargoTruck.csCountryCode
  • felhasználó: FruitBank.Common/Services/Ekaer/ShippingToEkaerMapper.cs (a *Country + a deviza-konverzió pontossága)

FBANKAPP-DMODEL-I-P6X4: A Product.Gtin átmenetileg a VTSZ-t tárolja — szétválasztandó

Status: Open · Priority: P3 · Type: I (adatmodell / átmeneti megoldás)

Supersedes MGFBANKPLUG-EKAER-I-T3X8 — áthelyezve az EKÁER-topicból ide, mert a GTIN/VTSZ szétválasztás általános adatmodell-kérdés (a GTIN globális termékazonosító, a VTSZ vámtarifaszám), nem EKÁER-specifikus.

Az EKÁER tradeCardItem.productVtsz (kötelező, 8 jegyű vámtarifaszám) forrása jelenleg a nopCommerce Product.Gtin oszlop (a ProductDto.Gtin-en keresztül). A GTIN és a VTSZ fogalmilag különböző:

  • GTIN — globális kereskedelmi cikkszám (vonalkód-azonosító, EAN/UPC).
  • VTSZ — vámtarifaszám (a termék vám-/statisztikai besorolása).

Egy termékhez a kettő nem azonos; a Gtin oszlop VTSZ-ként való használata átmeneti megoldás az EKÁER-integráció beindításához.

Hatás: jelenleg nincs üzemszerű gond (a Gtin mező szabad, és a VTSZ-t tölthetjük bele). Hosszú távon viszont, ha a valódi GTIN-re is szükség lesz, a kettő ütközik.

Javítási irány: külön Vtsz mező/GenericAttribute a Product-on, és a ShippingToEkaerMapper onnan olvasson — a Gtin maradjon a valódi GTIN.

Affected:

  • FruitBank.Common/Dtos/ProductDto.csGtin property (a [Column(nameof(Product.Gtin))] jelöléssel, summary-ban megjelölve)
  • FruitBank.Common/Services/Ekaer/ShippingToEkaerMapper.cs → a productVtsz forrása