feat: add operator and business reference fields to tenant ledgers

- Added `operator_user_id`, `biz_ref_type`, and `biz_ref_id` fields to the TenantLedger model for enhanced auditing and traceability.
- Updated the tenant ledgers query generation to include new fields.
- Introduced new API endpoint for retrieving tenant ledger records with filtering options based on the new fields.
- Enhanced Swagger documentation to reflect the new endpoint and its parameters.
- Created DTOs for admin ledger filtering and item representation.
- Implemented the admin ledger retrieval logic in the tenant service.
- Added database migration scripts to introduce new fields and indexes for efficient querying.
This commit is contained in:
2025-12-22 21:35:10 +08:00
parent 3cb2a6f586
commit 5dc0f89ac0
17 changed files with 983 additions and 171 deletions

View File

@@ -26,6 +26,7 @@ type Routes struct {
// Controller instances
content *content
contentAdmin *contentAdmin
ledgerAdmin *ledgerAdmin
me *me
mediaAssetAdmin *mediaAssetAdmin
order *order
@@ -112,6 +113,14 @@ func (r *Routes) Register(router fiber.Router) {
PathParam[int64]("contentID"),
Body[dto.ContentPriceUpsertForm]("form"),
))
// Register routes for controller: ledgerAdmin
r.log.Debugf("Registering route: Get /t/:tenantCode/v1/admin/ledgers -> ledgerAdmin.adminLedgers")
router.Get("/t/:tenantCode/v1/admin/ledgers"[len(r.Path()):], DataFunc3(
r.ledgerAdmin.adminLedgers,
Local[*models.Tenant]("tenant"),
Local[*models.TenantUser]("tenant_user"),
Query[dto.AdminLedgerListFilter]("filter"),
))
// Register routes for controller: me
r.log.Debugf("Registering route: Get /t/:tenantCode/v1/me -> me.get")
router.Get("/t/:tenantCode/v1/me"[len(r.Path()):], DataFunc3(