mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 12:55:00 +00:00
feat: check quota correctly (#6561)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
import { Quotas } from '../../core/quota';
|
||||
import { Quotas } from '../../core/quota/schema';
|
||||
import { upgradeQuotaVersion } from './utils/user-quotas';
|
||||
|
||||
export class NewFreePlan1705395933447 {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
import { Quotas } from '../../core/quota';
|
||||
import { Quotas } from '../../core/quota/schema';
|
||||
import { upgradeQuotaVersion } from './utils/user-quotas';
|
||||
|
||||
export class BusinessBlobLimit1706513866287 {
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
import { QuotaType } from '../../core/quota/types';
|
||||
import { upgradeLatestQuotaVersion } from './utils/user-quotas';
|
||||
|
||||
export class CopilotFeature1713164714634 {
|
||||
// do the migration
|
||||
static async up(db: PrismaClient) {
|
||||
await upgradeLatestQuotaVersion(
|
||||
db,
|
||||
QuotaType.ProPlanV1,
|
||||
'pro plan 1.1 migration'
|
||||
);
|
||||
await upgradeLatestQuotaVersion(
|
||||
db,
|
||||
QuotaType.RestrictedPlanV1,
|
||||
'restricted plan 1.1 migration'
|
||||
);
|
||||
}
|
||||
|
||||
// revert the migration
|
||||
static async down(_db: PrismaClient) {}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
import { FeatureKind } from '../../../core/features';
|
||||
import { Quotas } from '../../../core/quota/schema';
|
||||
import { getLatestQuota } from '../../../core/quota/schema';
|
||||
import { Quota, QuotaType } from '../../../core/quota/types';
|
||||
import { upsertFeature } from './user-features';
|
||||
|
||||
@@ -21,10 +21,10 @@ export async function upgradeQuotaVersion(
|
||||
});
|
||||
|
||||
// find all users that have old free plan
|
||||
const userIds = await db.user.findMany({
|
||||
const userIds = await tx.user.findMany({
|
||||
where: {
|
||||
features: {
|
||||
every: {
|
||||
some: {
|
||||
feature: {
|
||||
type: FeatureKind.Quota,
|
||||
feature: quota.feature,
|
||||
@@ -65,13 +65,19 @@ export async function upgradeQuotaVersion(
|
||||
});
|
||||
}
|
||||
|
||||
export async function upsertLatestQuotaVersion(
|
||||
db: PrismaClient,
|
||||
type: QuotaType
|
||||
) {
|
||||
const latestQuota = getLatestQuota(type);
|
||||
await upsertFeature(db, latestQuota);
|
||||
}
|
||||
|
||||
export async function upgradeLatestQuotaVersion(
|
||||
db: PrismaClient,
|
||||
type: QuotaType,
|
||||
reason: string
|
||||
) {
|
||||
const quota = Quotas.filter(f => f.feature === type);
|
||||
quota.sort((a, b) => b.version - a.version);
|
||||
const latestQuota = quota[0];
|
||||
const latestQuota = getLatestQuota(type);
|
||||
await upgradeQuotaVersion(db, latestQuota, reason);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user