Skip to content

App Platform — Technical Map

Route / page map

FamilyRoute gốcWrapper / page chính
App settings/s/app-settingsAppSettings.tsx
Message templates/s/app-settings/message-template/*AppSettingsSmsTemplate.tsx + AppSettingsZnsTemplate.tsx / AppSettingsSmsTemplateSms.tsx / AppSettingsNotificationTemplate.tsx
Customer / staff app/s/app-settings/customer-staff-app/*AppSettingsCustomerStaffApp.tsx
3rd / constant config/s/app-settings/3rd-config*, /s/app-settings/constant-configAppSettings3rdConfig.tsx, AppSettingsConstantConfig.tsx
App inventory setting/s/app-settings/inventory*Inventory.tsx, InventoryCreate.tsx, InventoryDetail.tsx

GraphQL / store map

Singleton app settings

Thành phầnVai trò
setting.graphqlGetGlobalSettingsAndMetadata, UpsertAppSettings
useSettings.tscache Pinia + localStorage, helper updateSetting
useSettingStore.tsstore rất mỏng cho settinglocales

Independent config islands

FileOwner data
3rd_config.graphqlsystem_config
constant_config.graphqlconstant_config
notification_template.graphqlnotification_template
zns_config_template.graphqlzns_config, zns_oa_list, zns_template, sms_template
generated warehouse querieswarehouse, warehouse_type, branch mapping

Data ownership

NhómOwner thực tế
Appointment / order / customer app / staff appdefault.app_setting
Locale metadatadefault.locale + app_setting
ZNS / SMS / notification templatenotification domain
3rd config / constant configconfig tables riêng
App inventory settingecommerce.warehouse

Boundary với module khác

ModuleBoundary
notificationSettings chỉ nắm config; runtime execution nằm ngoài module này
userinventory setting và một số enrich logic vẫn kéo branch/account từ user module
ecommercewarehouse/config của inventory page thuộc ecommerce domain

Rủi ro / Findings kỹ thuật

MứcFinding
CaouseSettings.getSetting(refresh) và path refetch chưa thực sự ép bypass cache.
CaoisValidImageDimensions() check width sai logic và bỏ quên minWidth.
CaoCustomerAndStaffAppEditor emit updateValue thay vì update:modelValue, và nhánh customer non-app_version merge sai key.
Trung bìnhcreateDictionaryLocales() khởi tạo accumulator bằng array thay vì object.
Trung bìnhapp inventory setting nằm trong route tree app-settings nhưng owner dữ liệu là warehouse, làm boundary kỹ thuật không thuần nhất.