|
|
||
|---|---|---|
| .. | ||
| migration | ||
| system | ||
| README.md | ||
| admin_config_compat.go | ||
| announcement.go | ||
| announcement_test.go | ||
| api.go | ||
| api_policy.go | ||
| api_policy_test.go | ||
| api_sync.go | ||
| api_token.go | ||
| audit.go | ||
| audit_delete_test.go | ||
| authority.go | ||
| authority_test.go | ||
| cache.go | ||
| casbin.go | ||
| config_management.go | ||
| config_store.go | ||
| config_watch.go | ||
| data.go | ||
| data_access_log.go | ||
| data_scope.go | ||
| data_scope_audit.go | ||
| data_scope_audit_test.go | ||
| data_scope_test.go | ||
| database.go | ||
| department.go | ||
| dictionary.go | ||
| dictionary_department_parity_test.go | ||
| error_record.go | ||
| error_record_test.go | ||
| export.go | ||
| file_storage.go | ||
| gorm_logger_test.go | ||
| integration_config.go | ||
| integration_config_test.go | ||
| log_file.go | ||
| log_file_test.go | ||
| login_log.go | ||
| media.go | ||
| media_test.go | ||
| media_upload.go | ||
| menu.go | ||
| menu_test.go | ||
| migrations.go | ||
| migrations_test.go | ||
| mongo.go | ||
| operation_log.go | ||
| organization_test.go | ||
| parameter.go | ||
| parameter_test.go | ||
| payment.go | ||
| payment_config_test.go | ||
| payment_helpers.go | ||
| payment_native_test.go | ||
| payment_order.go | ||
| payment_order_test.go | ||
| permission.go | ||
| permission_test.go | ||
| position.go | ||
| runtime_clients.go | ||
| system.go | ||
| system_init.go | ||
| system_init_ignore_test.go | ||
| system_init_state_test.go | ||
| task.go | ||
| transactions_test.go | ||
| user.go | ||
| user_strict_test.go | ||
| version.go | ||
| version_test.go | ||
README.md
Data Layer
internal/data is the persistence composition root. It owns the shared
database/runtime container (Data), database clients, configuration storage,
and the Wire ProviderSet. Business repositories live in submodules so a new
feature can be found by its domain instead of by scanning one large package.
Modules
internal/data/systemcontains the built-in administration domain: users, authorities, APIs, permissions, menus, organization, dictionaries, parameters, tokens, security, audit/logging, media, announcements, tasks, versions, exports, bootstrap seeding, and system migrations.internal/data/paymentcontains payment configuration and payment-order persistence. Provider SDK implementations are separate ininternal/integration/payment.internal/data/migrationcontains the version-table runner used by the root migration coordinator.
The root package intentionally keeps only cross-cutting infrastructure:
database lifecycle/reloads, runtime configuration persistence, data-scope
auditing, integration configuration storage, and migration orchestration.
Repositories depend on narrow module seams (system.Provider and
payment.Provider) rather than importing the root implementation details.
Non-database adapters remain under internal/integration (storage, email,
payment SDKs, and cache), while reusable GORM and pagination helpers live in
pkg/gormkit and pkg/pagination.