Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions accounting/utils/format_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,13 @@ func TestFormat_ValidateDateTimeFormat(t *testing.T) {

require.False(t, res)
}

func TestFormat_ValidateQueryDate(t *testing.T) {
layout := "2006-01-02 15:04:05"
startDateStr := "2024-11-08 12:13:23"
endDateStr := "2024-11-09 12:13:23"
start, end, err := ValidateQueryDate(startDateStr, endDateStr, layout)
require.Nil(t, err)
require.Equal(t, startDateStr, start)
require.Equal(t, "2024-11-10 12:13:23", end)
}
16 changes: 14 additions & 2 deletions accounting/utils/scene.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ func GetSkuUnitTypeByScene(scene types.SceneType) types.SkuUnitType {
return types.UnitToken
case types.SceneGuiAgent:
return types.UnitToken
case types.SceneSubscription:
return types.UnitMonth
default:
return types.UnitMinute
}
Expand Down Expand Up @@ -81,3 +79,17 @@ func IsNeedCheckMeteringInMinute(scene types.SceneType, valueType types.ChargeVa
return false
}
}

func IsNeedCheckUserSubscription(scene types.SceneType) bool {
switch types.SceneType(scene) {
case types.SceneModelInference,
types.SceneSpace,
types.SceneModelFinetune,
types.SceneEvaluation,
types.SceneModelServerless,
types.SceneStarship:
return true
default:
return false
}
}
17 changes: 17 additions & 0 deletions accounting/utils/scene_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,20 @@ func TestScene_GetSKUTypeByScene(t *testing.T) {
require.Equal(t, skuType, res)
}
}

func TestAccountUsersStore_IsNeedCheckUserSubscription(t *testing.T) {
scenes := map[types.SceneType]bool{
types.SceneModelInference: true,
types.SceneSpace: true,
types.SceneModelFinetune: true,
types.SceneEvaluation: true,
types.SceneModelServerless: true,
types.SceneGuiAgent: false,
types.SceneStarship: true,
}

for scene, skuType := range scenes {
res := IsNeedCheckUserSubscription(scene)
require.Equal(t, skuType, res)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
SET statement_timeout = 0;

--bun:split

ALTER TABLE account_prices DROP COLUMN IF EXISTS discount;

--bun:split

ALTER TABLE account_statements DROP COLUMN IF EXISTS discount;

--bun:split

ALTER TABLE account_statements DROP COLUMN IF EXISTS regular_value;

--bun:split

ALTER TABLE account_subscription_bills DROP COLUMN IF EXISTS sku_type;

--bun:split

ALTER TABLE account_subscription_bills DROP COLUMN IF EXISTS discount;

--bun:split

ALTER TABLE account_subscription_usages DROP COLUMN IF EXISTS value_type;

--bun:split

ALTER TABLE account_subscription_usages DROP COLUMN IF EXISTS sku_type;

--bun:split

DROP INDEX IF EXISTS idx_unique_account_subscription_useruuid_skutype;

--bun:split

CREATE INDEX IF NOT EXISTS idx_account_subscription_useruuid_skutype ON account_subscriptions (user_uuid,sku_type);

--bun:split

DROP INDEX IF EXISTS idx_account_subscription_bill_createdat_useruuid_status_skutype;

--bun:split

CREATE INDEX IF NOT EXISTS idx_account_subscription_bill_createdat_useruuid_status ON account_subscription_bills (created_at,user_uuid,status);

--bun:split

DROP INDEX IF EXISTS idx_account_sub_usage_billid_useruuid_skutype;

--bun:split

DROP INDEX IF EXISTS idx_account_sub_usage_billmonth_useruuid_skutype;
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
SET statement_timeout = 0;

--bun:split

ALTER TABLE account_prices ADD COLUMN IF NOT EXISTS discount DOUBLE PRECISION;

--bun:split

ALTER TABLE account_statements ADD COLUMN IF NOT EXISTS discount DOUBLE PRECISION;

--bun:split

ALTER TABLE account_statements ADD COLUMN IF NOT EXISTS regular_value DOUBLE PRECISION;

--bun:split

ALTER TABLE account_subscription_bills ADD COLUMN IF NOT EXISTS sku_type BIGINT;

--bun:split

ALTER TABLE account_subscription_bills ADD COLUMN IF NOT EXISTS discount DOUBLE PRECISION;

--bun:split

ALTER TABLE account_subscription_usages ADD COLUMN IF NOT EXISTS value_type BIGINT;

--bun:split

ALTER TABLE account_subscription_usages ADD COLUMN IF NOT EXISTS sku_type BIGINT;

--bun:split

DROP INDEX IF EXISTS idx_account_subscription_useruuid_skutype;

--bun:split

CREATE UNIQUE INDEX IF NOT EXISTS idx_unique_account_subscription_useruuid_skutype ON account_subscriptions (user_uuid,sku_type);

--bun:split

DROP INDEX IF EXISTS idx_account_subscription_bill_createdat_useruuid_status;

--bun:split

CREATE INDEX IF NOT EXISTS idx_account_subscription_bill_createdat_useruuid_status_skutype ON account_subscription_bills (created_at,user_uuid,status,sku_type);

--bun:split

CREATE INDEX IF NOT EXISTS idx_account_sub_usage_billid_useruuid_skutype ON account_subscription_usages (bill_id,user_uuid,sku_type);

--bun:split

CREATE INDEX IF NOT EXISTS idx_account_sub_usage_billmonth_useruuid_skutype ON account_subscription_usages (bill_month,user_uuid,sku_type);

Loading