package tenant import ( "quyun/v2/app/http/tenant/dto" "quyun/v2/app/requests" "quyun/v2/app/services" "quyun/v2/database/models" "quyun/v2/pkg/consts" "github.com/gofiber/fiber/v3" ) // me provides tenant context introspection endpoints (current tenant/user/tenant_user). // // @provider type me struct{} // get // // @Summary 当前租户上下文信息 // @Tags Tenant // @Accept json // @Produce json // @Param tenantCode path string true "Tenant Code" // @Success 200 {object} dto.MeResponse // // @Router /t/:tenantCode/v1/me [get] // @Bind tenant local key(tenant) // @Bind user local key(user) // @Bind tenantUser local key(tenant_user) func (*me) get(ctx fiber.Ctx, tenant *models.Tenant, user *models.User, tenantUser *models.TenantUser) (*dto.MeResponse, error) { return &dto.MeResponse{ Tenant: tenant, User: user, TenantUser: tenantUser, }, nil } // balance // // @Summary 当前租户余额信息 // @Tags Tenant // @Accept json // @Produce json // @Param tenantCode path string true "Tenant Code" // @Success 200 {object} dto.MeBalanceResponse // // @Router /t/:tenantCode/v1/me/balance [get] // @Bind tenant local key(tenant) // @Bind user local key(user) func (*me) balance(ctx fiber.Ctx, tenant *models.Tenant, user *models.User) (*dto.MeBalanceResponse, error) { m, err := services.Ledger.MyBalance(ctx.Context(), tenant.ID, user.ID) if err != nil { return nil, err } return &dto.MeBalanceResponse{ Currency: consts.CurrencyCNY, Balance: m.Balance, BalanceFrozen: m.BalanceFrozen, UpdatedAt: m.UpdatedAt, }, nil } // ledgers // // @Summary 当前租户余额流水(分页) // @Tags Tenant // @Accept json // @Produce json // @Param tenantCode path string true "Tenant Code" // @Success 200 {object} requests.Pager{items=dto.MyLedgerItem} // // @Router /t/:tenantCode/v1/me/ledgers [get] // @Bind tenant local key(tenant) // @Bind user local key(user) // @Bind filter query func (*me) ledgers(ctx fiber.Ctx, tenant *models.Tenant, user *models.User, filter *dto.MyLedgerListFilter) (*requests.Pager, error) { return services.Ledger.MyLedgerPage(ctx.Context(), tenant.ID, user.ID, filter) }