chore: mqsrv backend
This commit is contained in:
1
node_modules/.prisma/client/default.d.ts
generated
vendored
Normal file
1
node_modules/.prisma/client/default.d.ts
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./index"
|
||||
1
node_modules/.prisma/client/default.js
generated
vendored
Normal file
1
node_modules/.prisma/client/default.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = { ...require('.') }
|
||||
9
node_modules/.prisma/client/deno/edge.d.ts
generated
vendored
Normal file
9
node_modules/.prisma/client/deno/edge.d.ts
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
class PrismaClient {
|
||||
constructor() {
|
||||
throw new Error(
|
||||
'@prisma/client/deno/edge did not initialize yet. Please run "prisma generate" and try to import it again.',
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export { PrismaClient }
|
||||
1
node_modules/.prisma/client/edge.d.ts
generated
vendored
Normal file
1
node_modules/.prisma/client/edge.d.ts
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./default"
|
||||
329
node_modules/.prisma/client/edge.js
generated
vendored
Normal file
329
node_modules/.prisma/client/edge.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
322
node_modules/.prisma/client/index-browser.js
generated
vendored
Normal file
322
node_modules/.prisma/client/index-browser.js
generated
vendored
Normal file
@@ -0,0 +1,322 @@
|
||||
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
|
||||
const {
|
||||
Decimal,
|
||||
objectEnumValues,
|
||||
makeStrictEnum,
|
||||
Public,
|
||||
getRuntime,
|
||||
skip
|
||||
} = require('@prisma/client/runtime/index-browser.js')
|
||||
|
||||
|
||||
const Prisma = {}
|
||||
|
||||
exports.Prisma = Prisma
|
||||
exports.$Enums = {}
|
||||
|
||||
/**
|
||||
* Prisma Client JS version: 5.22.0
|
||||
* Query Engine version: 605197351a3c8bdd595af2d2a9bc3025bca48ea2
|
||||
*/
|
||||
Prisma.prismaVersion = {
|
||||
client: "5.22.0",
|
||||
engine: "605197351a3c8bdd595af2d2a9bc3025bca48ea2"
|
||||
}
|
||||
|
||||
Prisma.PrismaClientKnownRequestError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)};
|
||||
Prisma.PrismaClientUnknownRequestError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.PrismaClientRustPanicError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.PrismaClientInitializationError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.PrismaClientValidationError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.NotFoundError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`NotFoundError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.Decimal = Decimal
|
||||
|
||||
/**
|
||||
* Re-export of sql-template-tag
|
||||
*/
|
||||
Prisma.sql = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.empty = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.join = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.raw = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.validator = Public.validator
|
||||
|
||||
/**
|
||||
* Extensions
|
||||
*/
|
||||
Prisma.getExtensionContext = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.defineExtension = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
|
||||
/**
|
||||
* Shorthand utilities for JSON filtering
|
||||
*/
|
||||
Prisma.DbNull = objectEnumValues.instances.DbNull
|
||||
Prisma.JsonNull = objectEnumValues.instances.JsonNull
|
||||
Prisma.AnyNull = objectEnumValues.instances.AnyNull
|
||||
|
||||
Prisma.NullTypes = {
|
||||
DbNull: objectEnumValues.classes.DbNull,
|
||||
JsonNull: objectEnumValues.classes.JsonNull,
|
||||
AnyNull: objectEnumValues.classes.AnyNull
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Enums
|
||||
*/
|
||||
|
||||
exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
|
||||
ReadUncommitted: 'ReadUncommitted',
|
||||
ReadCommitted: 'ReadCommitted',
|
||||
RepeatableRead: 'RepeatableRead',
|
||||
Serializable: 'Serializable'
|
||||
});
|
||||
|
||||
exports.Prisma.UserScalarFieldEnum = {
|
||||
id: 'id',
|
||||
username: 'username',
|
||||
email: 'email',
|
||||
passwordHash: 'passwordHash',
|
||||
avatar: 'avatar',
|
||||
isVip: 'isVip',
|
||||
vipLevel: 'vipLevel',
|
||||
vipExpireAt: 'vipExpireAt',
|
||||
schemesCount: 'schemesCount',
|
||||
favoritesCount: 'favoritesCount',
|
||||
installId: 'installId',
|
||||
deviceHash: 'deviceHash',
|
||||
lastDeviceCheck: 'lastDeviceCheck',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt',
|
||||
lastLoginAt: 'lastLoginAt',
|
||||
deletedAt: 'deletedAt'
|
||||
};
|
||||
|
||||
exports.Prisma.VipCardScalarFieldEnum = {
|
||||
id: 'id',
|
||||
cardKey: 'cardKey',
|
||||
cardType: 'cardType',
|
||||
days: 'days',
|
||||
status: 'status',
|
||||
usedBy: 'usedBy',
|
||||
usedAt: 'usedAt',
|
||||
batchId: 'batchId',
|
||||
generatedAt: 'generatedAt',
|
||||
originalPrice: 'originalPrice',
|
||||
salePrice: 'salePrice'
|
||||
};
|
||||
|
||||
exports.Prisma.SchemeScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
title: 'title',
|
||||
description: 'description',
|
||||
weaponName: 'weaponName',
|
||||
category: 'category',
|
||||
schemeContent: 'schemeContent',
|
||||
contentEncrypted: 'contentEncrypted',
|
||||
price: 'price',
|
||||
viewsCount: 'viewsCount',
|
||||
downloadsCount: 'downloadsCount',
|
||||
likesCount: 'likesCount',
|
||||
favoritesCount: 'favoritesCount',
|
||||
gpuModel: 'gpuModel',
|
||||
driverVersion: 'driverVersion',
|
||||
appVersion: 'appVersion',
|
||||
status: 'status',
|
||||
isOfficial: 'isOfficial',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt'
|
||||
};
|
||||
|
||||
exports.Prisma.SchemeAobScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
title: 'title',
|
||||
description: 'description',
|
||||
weaponName: 'weaponName',
|
||||
category: 'category',
|
||||
schemeContent: 'schemeContent',
|
||||
contentEncrypted: 'contentEncrypted',
|
||||
price: 'price',
|
||||
viewsCount: 'viewsCount',
|
||||
downloadsCount: 'downloadsCount',
|
||||
likesCount: 'likesCount',
|
||||
favoritesCount: 'favoritesCount',
|
||||
status: 'status',
|
||||
isOfficial: 'isOfficial',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt'
|
||||
};
|
||||
|
||||
exports.Prisma.FilterShareScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
title: 'title',
|
||||
description: 'description',
|
||||
category: 'category',
|
||||
filterContent: 'filterContent',
|
||||
contentFormat: 'contentFormat',
|
||||
viewsCount: 'viewsCount',
|
||||
likesCount: 'likesCount',
|
||||
status: 'status',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt'
|
||||
};
|
||||
|
||||
exports.Prisma.FavoriteScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
targetType: 'targetType',
|
||||
targetId: 'targetId',
|
||||
createdAt: 'createdAt'
|
||||
};
|
||||
|
||||
exports.Prisma.LikeScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
targetType: 'targetType',
|
||||
targetId: 'targetId',
|
||||
createdAt: 'createdAt'
|
||||
};
|
||||
|
||||
exports.Prisma.CategoryScalarFieldEnum = {
|
||||
id: 'id',
|
||||
name: 'name',
|
||||
type: 'type',
|
||||
sortOrder: 'sortOrder',
|
||||
isActive: 'isActive',
|
||||
createdAt: 'createdAt'
|
||||
};
|
||||
|
||||
exports.Prisma.UserLogScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
action: 'action',
|
||||
targetType: 'targetType',
|
||||
targetId: 'targetId',
|
||||
installId: 'installId',
|
||||
deviceHash: 'deviceHash',
|
||||
ipAddress: 'ipAddress',
|
||||
createdAt: 'createdAt'
|
||||
};
|
||||
|
||||
exports.Prisma.DeviceBindingScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
installId: 'installId',
|
||||
deviceHash: 'deviceHash',
|
||||
boundAt: 'boundAt',
|
||||
lastActiveAt: 'lastActiveAt',
|
||||
isActive: 'isActive'
|
||||
};
|
||||
|
||||
exports.Prisma.SortOrder = {
|
||||
asc: 'asc',
|
||||
desc: 'desc'
|
||||
};
|
||||
|
||||
exports.Prisma.QueryMode = {
|
||||
default: 'default',
|
||||
insensitive: 'insensitive'
|
||||
};
|
||||
|
||||
exports.Prisma.NullsOrder = {
|
||||
first: 'first',
|
||||
last: 'last'
|
||||
};
|
||||
|
||||
|
||||
exports.Prisma.ModelName = {
|
||||
User: 'User',
|
||||
VipCard: 'VipCard',
|
||||
Scheme: 'Scheme',
|
||||
SchemeAob: 'SchemeAob',
|
||||
FilterShare: 'FilterShare',
|
||||
Favorite: 'Favorite',
|
||||
Like: 'Like',
|
||||
Category: 'Category',
|
||||
UserLog: 'UserLog',
|
||||
DeviceBinding: 'DeviceBinding'
|
||||
};
|
||||
|
||||
/**
|
||||
* This is a stub Prisma Client that will error at runtime if called.
|
||||
*/
|
||||
class PrismaClient {
|
||||
constructor() {
|
||||
return new Proxy(this, {
|
||||
get(target, prop) {
|
||||
let message
|
||||
const runtime = getRuntime()
|
||||
if (runtime.isEdge) {
|
||||
message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either:
|
||||
- Use Prisma Accelerate: https://pris.ly/d/accelerate
|
||||
- Use Driver Adapters: https://pris.ly/d/driver-adapters
|
||||
`;
|
||||
} else {
|
||||
message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).'
|
||||
}
|
||||
|
||||
message += `
|
||||
If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report`
|
||||
|
||||
throw new Error(message)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
exports.PrismaClient = PrismaClient
|
||||
|
||||
Object.assign(exports, Prisma)
|
||||
17815
node_modules/.prisma/client/index.d.ts
generated
vendored
Normal file
17815
node_modules/.prisma/client/index.d.ts
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
350
node_modules/.prisma/client/index.js
generated
vendored
Normal file
350
node_modules/.prisma/client/index.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
node_modules/.prisma/client/libquery_engine-darwin.dylib.node
generated
vendored
Executable file
BIN
node_modules/.prisma/client/libquery_engine-darwin.dylib.node
generated
vendored
Executable file
Binary file not shown.
97
node_modules/.prisma/client/package.json
generated
vendored
Normal file
97
node_modules/.prisma/client/package.json
generated
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"name": "prisma-client-c6bdb0f4d71c754b179b2311d7828e2352a96cae99c1c37490ecedcad3d24f1a",
|
||||
"main": "index.js",
|
||||
"types": "index.d.ts",
|
||||
"browser": "index-browser.js",
|
||||
"exports": {
|
||||
"./package.json": "./package.json",
|
||||
".": {
|
||||
"require": {
|
||||
"node": "./index.js",
|
||||
"edge-light": "./wasm.js",
|
||||
"workerd": "./wasm.js",
|
||||
"worker": "./wasm.js",
|
||||
"browser": "./index-browser.js",
|
||||
"default": "./index.js"
|
||||
},
|
||||
"import": {
|
||||
"node": "./index.js",
|
||||
"edge-light": "./wasm.js",
|
||||
"workerd": "./wasm.js",
|
||||
"worker": "./wasm.js",
|
||||
"browser": "./index-browser.js",
|
||||
"default": "./index.js"
|
||||
},
|
||||
"default": "./index.js"
|
||||
},
|
||||
"./edge": {
|
||||
"types": "./edge.d.ts",
|
||||
"require": "./edge.js",
|
||||
"import": "./edge.js",
|
||||
"default": "./edge.js"
|
||||
},
|
||||
"./react-native": {
|
||||
"types": "./react-native.d.ts",
|
||||
"require": "./react-native.js",
|
||||
"import": "./react-native.js",
|
||||
"default": "./react-native.js"
|
||||
},
|
||||
"./extension": {
|
||||
"types": "./extension.d.ts",
|
||||
"require": "./extension.js",
|
||||
"import": "./extension.js",
|
||||
"default": "./extension.js"
|
||||
},
|
||||
"./index-browser": {
|
||||
"types": "./index.d.ts",
|
||||
"require": "./index-browser.js",
|
||||
"import": "./index-browser.js",
|
||||
"default": "./index-browser.js"
|
||||
},
|
||||
"./index": {
|
||||
"types": "./index.d.ts",
|
||||
"require": "./index.js",
|
||||
"import": "./index.js",
|
||||
"default": "./index.js"
|
||||
},
|
||||
"./wasm": {
|
||||
"types": "./wasm.d.ts",
|
||||
"require": "./wasm.js",
|
||||
"import": "./wasm.js",
|
||||
"default": "./wasm.js"
|
||||
},
|
||||
"./runtime/library": {
|
||||
"types": "./runtime/library.d.ts",
|
||||
"require": "./runtime/library.js",
|
||||
"import": "./runtime/library.js",
|
||||
"default": "./runtime/library.js"
|
||||
},
|
||||
"./runtime/binary": {
|
||||
"types": "./runtime/binary.d.ts",
|
||||
"require": "./runtime/binary.js",
|
||||
"import": "./runtime/binary.js",
|
||||
"default": "./runtime/binary.js"
|
||||
},
|
||||
"./generator-build": {
|
||||
"require": "./generator-build/index.js",
|
||||
"import": "./generator-build/index.js",
|
||||
"default": "./generator-build/index.js"
|
||||
},
|
||||
"./sql": {
|
||||
"require": {
|
||||
"types": "./sql.d.ts",
|
||||
"node": "./sql.js",
|
||||
"default": "./sql.js"
|
||||
},
|
||||
"import": {
|
||||
"types": "./sql.d.ts",
|
||||
"node": "./sql.mjs",
|
||||
"default": "./sql.mjs"
|
||||
},
|
||||
"default": "./sql.js"
|
||||
},
|
||||
"./*": "./*"
|
||||
},
|
||||
"version": "5.22.0",
|
||||
"sideEffects": false
|
||||
}
|
||||
279
node_modules/.prisma/client/schema.prisma
generated
vendored
Normal file
279
node_modules/.prisma/client/schema.prisma
generated
vendored
Normal file
@@ -0,0 +1,279 @@
|
||||
// This is your Prisma schema file,
|
||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 用户表
|
||||
// ============================================
|
||||
model User {
|
||||
id String @id @default(uuid())
|
||||
username String @unique @db.VarChar(50)
|
||||
email String @unique @db.VarChar(100)
|
||||
passwordHash String @map("password_hash") @db.VarChar(255)
|
||||
avatar String? @db.VarChar(255)
|
||||
|
||||
// VIP 状态
|
||||
isVip Boolean @default(false) @map("is_vip")
|
||||
vipLevel Int @default(0) @map("vip_level")
|
||||
vipExpireAt DateTime? @map("vip_expire_at")
|
||||
|
||||
// 统计
|
||||
schemesCount Int @default(0) @map("schemes_count")
|
||||
favoritesCount Int @default(0) @map("favorites_count")
|
||||
|
||||
// 设备绑定
|
||||
installId String? @map("install_id") @db.VarChar(64)
|
||||
deviceHash String? @map("device_hash") @db.VarChar(64)
|
||||
lastDeviceCheck DateTime? @map("last_device_check")
|
||||
|
||||
// 元数据
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
updatedAt DateTime @updatedAt @map("updated_at")
|
||||
lastLoginAt DateTime? @map("last_login_at")
|
||||
deletedAt DateTime? @map("deleted_at")
|
||||
|
||||
// 关系
|
||||
schemes Scheme[]
|
||||
schemesAob SchemeAob[]
|
||||
filterShares FilterShare[]
|
||||
favorites Favorite[]
|
||||
likes Like[]
|
||||
logs UserLog[]
|
||||
usedVipCards VipCard[] @relation("UsedCards")
|
||||
deviceBindings DeviceBinding[]
|
||||
|
||||
@@map("users")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// VIP 卡密表
|
||||
// ============================================
|
||||
model VipCard {
|
||||
id String @id @default(uuid())
|
||||
cardKey String @unique @map("card_key") @db.VarChar(50)
|
||||
|
||||
cardType String @map("card_type") @db.VarChar(20)
|
||||
days Int
|
||||
|
||||
status String @default("UNUSED") @db.VarChar(20)
|
||||
usedBy String? @map("used_by")
|
||||
usedAt DateTime? @map("used_at")
|
||||
|
||||
batchId String? @map("batch_id")
|
||||
generatedAt DateTime @default(now()) @map("generated_at")
|
||||
|
||||
originalPrice Decimal? @map("original_price") @db.Decimal(10, 2)
|
||||
salePrice Decimal? @map("sale_price") @db.Decimal(10, 2)
|
||||
|
||||
user User? @relation("UsedCards", fields: [usedBy], references: [id], onDelete: SetNull)
|
||||
|
||||
@@map("vip_cards")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 方案表 - 烽火地带
|
||||
// ============================================
|
||||
model Scheme {
|
||||
id String @id @default(uuid())
|
||||
userId String @map("user_id")
|
||||
|
||||
title String? @db.VarChar(100)
|
||||
description String? @db.Text
|
||||
weaponName String? @map("weapon_name") @db.VarChar(100)
|
||||
category String? @db.VarChar(50)
|
||||
|
||||
schemeContent String @map("scheme_content") @db.Text
|
||||
contentEncrypted Boolean @default(true) @map("content_encrypted")
|
||||
|
||||
price Int @default(0)
|
||||
|
||||
viewsCount Int @default(0) @map("views_count")
|
||||
downloadsCount Int @default(0) @map("downloads_count")
|
||||
likesCount Int @default(0) @map("likes_count")
|
||||
favoritesCount Int @default(0) @map("favorites_count")
|
||||
|
||||
gpuModel String? @map("gpu_model") @db.VarChar(100)
|
||||
driverVersion String? @map("driver_version") @db.VarChar(50)
|
||||
appVersion String? @map("app_version") @db.VarChar(20)
|
||||
|
||||
status String @default("DRAFT") @db.VarChar(20)
|
||||
isOfficial Boolean @default(false) @map("is_official")
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
updatedAt DateTime @updatedAt @map("updated_at")
|
||||
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([userId])
|
||||
@@index([weaponName])
|
||||
@@index([category])
|
||||
@@index([status])
|
||||
@@map("schemes")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 方案表 - 全面战场 (AOB)
|
||||
// ============================================
|
||||
model SchemeAob {
|
||||
id String @id @default(uuid())
|
||||
userId String @map("user_id")
|
||||
|
||||
title String? @db.VarChar(100)
|
||||
description String? @db.Text
|
||||
weaponName String? @map("weapon_name") @db.VarChar(100)
|
||||
category String? @db.VarChar(50)
|
||||
|
||||
schemeContent String @map("scheme_content") @db.Text
|
||||
contentEncrypted Boolean @default(true) @map("content_encrypted")
|
||||
|
||||
price Int @default(0)
|
||||
|
||||
viewsCount Int @default(0) @map("views_count")
|
||||
downloadsCount Int @default(0) @map("downloads_count")
|
||||
likesCount Int @default(0) @map("likes_count")
|
||||
favoritesCount Int @default(0) @map("favorites_count")
|
||||
|
||||
status String @default("DRAFT") @db.VarChar(20)
|
||||
isOfficial Boolean @default(false) @map("is_official")
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
updatedAt DateTime @updatedAt @map("updated_at")
|
||||
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([userId])
|
||||
@@index([weaponName])
|
||||
@@map("schemes_aob")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 滤镜分享表
|
||||
// ============================================
|
||||
model FilterShare {
|
||||
id String @id @default(uuid())
|
||||
userId String @map("user_id")
|
||||
|
||||
title String @db.VarChar(100)
|
||||
description String? @db.Text
|
||||
category String? @db.VarChar(50)
|
||||
|
||||
filterContent String @map("filter_content") @db.Text
|
||||
contentFormat String @default("MQTS1") @map("content_format") @db.VarChar(20)
|
||||
|
||||
viewsCount Int @default(0) @map("views_count")
|
||||
likesCount Int @default(0) @map("likes_count")
|
||||
|
||||
status String @default("DRAFT") @db.VarChar(20)
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
updatedAt DateTime @updatedAt @map("updated_at")
|
||||
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([userId])
|
||||
@@map("filter_shares")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 收藏表
|
||||
// ============================================
|
||||
model Favorite {
|
||||
id String @id @default(uuid())
|
||||
userId String @map("user_id")
|
||||
targetType String @map("target_type") @db.VarChar(20)
|
||||
targetId String @map("target_id")
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([userId, targetType, targetId])
|
||||
@@index([userId])
|
||||
@@map("favorites")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 点赞表
|
||||
// ============================================
|
||||
model Like {
|
||||
id String @id @default(uuid())
|
||||
userId String @map("user_id")
|
||||
targetType String @map("target_type") @db.VarChar(20)
|
||||
targetId String @map("target_id")
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([userId, targetType, targetId])
|
||||
@@index([userId])
|
||||
@@index([targetType, targetId])
|
||||
@@map("likes")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 分类表
|
||||
// ============================================
|
||||
model Category {
|
||||
id String @id @default(uuid())
|
||||
name String @db.VarChar(50)
|
||||
type String @db.VarChar(20)
|
||||
|
||||
sortOrder Int @default(0) @map("sort_order")
|
||||
isActive Boolean @default(true) @map("is_active")
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
|
||||
@@map("categories")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 用户日志表
|
||||
// ============================================
|
||||
model UserLog {
|
||||
id String @id @default(uuid())
|
||||
userId String? @map("user_id")
|
||||
|
||||
action String @db.VarChar(50)
|
||||
targetType String? @map("target_type") @db.VarChar(50)
|
||||
targetId String? @map("target_id")
|
||||
|
||||
installId String? @map("install_id") @db.VarChar(64)
|
||||
deviceHash String? @map("device_hash") @db.VarChar(64)
|
||||
ipAddress String? @map("ip_address") @db.VarChar(45)
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
|
||||
user User? @relation(fields: [userId], references: [id], onDelete: SetNull)
|
||||
|
||||
@@index([userId])
|
||||
@@index([action])
|
||||
@@map("user_logs")
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// 设备绑定表
|
||||
// ============================================
|
||||
model DeviceBinding {
|
||||
id String @id @default(uuid())
|
||||
userId String @map("user_id")
|
||||
installId String @map("install_id") @db.VarChar(64)
|
||||
deviceHash String @map("device_hash") @db.VarChar(64)
|
||||
|
||||
boundAt DateTime @default(now()) @map("bound_at")
|
||||
lastActiveAt DateTime? @map("last_active_at")
|
||||
isActive Boolean @default(true) @map("is_active")
|
||||
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([userId, installId])
|
||||
@@map("device_bindings")
|
||||
}
|
||||
1
node_modules/.prisma/client/wasm.d.ts
generated
vendored
Normal file
1
node_modules/.prisma/client/wasm.d.ts
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./index"
|
||||
322
node_modules/.prisma/client/wasm.js
generated
vendored
Normal file
322
node_modules/.prisma/client/wasm.js
generated
vendored
Normal file
@@ -0,0 +1,322 @@
|
||||
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
|
||||
const {
|
||||
Decimal,
|
||||
objectEnumValues,
|
||||
makeStrictEnum,
|
||||
Public,
|
||||
getRuntime,
|
||||
skip
|
||||
} = require('@prisma/client/runtime/index-browser.js')
|
||||
|
||||
|
||||
const Prisma = {}
|
||||
|
||||
exports.Prisma = Prisma
|
||||
exports.$Enums = {}
|
||||
|
||||
/**
|
||||
* Prisma Client JS version: 5.22.0
|
||||
* Query Engine version: 605197351a3c8bdd595af2d2a9bc3025bca48ea2
|
||||
*/
|
||||
Prisma.prismaVersion = {
|
||||
client: "5.22.0",
|
||||
engine: "605197351a3c8bdd595af2d2a9bc3025bca48ea2"
|
||||
}
|
||||
|
||||
Prisma.PrismaClientKnownRequestError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)};
|
||||
Prisma.PrismaClientUnknownRequestError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.PrismaClientRustPanicError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.PrismaClientInitializationError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.PrismaClientValidationError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.NotFoundError = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`NotFoundError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.Decimal = Decimal
|
||||
|
||||
/**
|
||||
* Re-export of sql-template-tag
|
||||
*/
|
||||
Prisma.sql = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.empty = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.join = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.raw = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.validator = Public.validator
|
||||
|
||||
/**
|
||||
* Extensions
|
||||
*/
|
||||
Prisma.getExtensionContext = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
Prisma.defineExtension = () => {
|
||||
const runtimeName = getRuntime().prettyName;
|
||||
throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
|
||||
In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
|
||||
)}
|
||||
|
||||
/**
|
||||
* Shorthand utilities for JSON filtering
|
||||
*/
|
||||
Prisma.DbNull = objectEnumValues.instances.DbNull
|
||||
Prisma.JsonNull = objectEnumValues.instances.JsonNull
|
||||
Prisma.AnyNull = objectEnumValues.instances.AnyNull
|
||||
|
||||
Prisma.NullTypes = {
|
||||
DbNull: objectEnumValues.classes.DbNull,
|
||||
JsonNull: objectEnumValues.classes.JsonNull,
|
||||
AnyNull: objectEnumValues.classes.AnyNull
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Enums
|
||||
*/
|
||||
|
||||
exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
|
||||
ReadUncommitted: 'ReadUncommitted',
|
||||
ReadCommitted: 'ReadCommitted',
|
||||
RepeatableRead: 'RepeatableRead',
|
||||
Serializable: 'Serializable'
|
||||
});
|
||||
|
||||
exports.Prisma.UserScalarFieldEnum = {
|
||||
id: 'id',
|
||||
username: 'username',
|
||||
email: 'email',
|
||||
passwordHash: 'passwordHash',
|
||||
avatar: 'avatar',
|
||||
isVip: 'isVip',
|
||||
vipLevel: 'vipLevel',
|
||||
vipExpireAt: 'vipExpireAt',
|
||||
schemesCount: 'schemesCount',
|
||||
favoritesCount: 'favoritesCount',
|
||||
installId: 'installId',
|
||||
deviceHash: 'deviceHash',
|
||||
lastDeviceCheck: 'lastDeviceCheck',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt',
|
||||
lastLoginAt: 'lastLoginAt',
|
||||
deletedAt: 'deletedAt'
|
||||
};
|
||||
|
||||
exports.Prisma.VipCardScalarFieldEnum = {
|
||||
id: 'id',
|
||||
cardKey: 'cardKey',
|
||||
cardType: 'cardType',
|
||||
days: 'days',
|
||||
status: 'status',
|
||||
usedBy: 'usedBy',
|
||||
usedAt: 'usedAt',
|
||||
batchId: 'batchId',
|
||||
generatedAt: 'generatedAt',
|
||||
originalPrice: 'originalPrice',
|
||||
salePrice: 'salePrice'
|
||||
};
|
||||
|
||||
exports.Prisma.SchemeScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
title: 'title',
|
||||
description: 'description',
|
||||
weaponName: 'weaponName',
|
||||
category: 'category',
|
||||
schemeContent: 'schemeContent',
|
||||
contentEncrypted: 'contentEncrypted',
|
||||
price: 'price',
|
||||
viewsCount: 'viewsCount',
|
||||
downloadsCount: 'downloadsCount',
|
||||
likesCount: 'likesCount',
|
||||
favoritesCount: 'favoritesCount',
|
||||
gpuModel: 'gpuModel',
|
||||
driverVersion: 'driverVersion',
|
||||
appVersion: 'appVersion',
|
||||
status: 'status',
|
||||
isOfficial: 'isOfficial',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt'
|
||||
};
|
||||
|
||||
exports.Prisma.SchemeAobScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
title: 'title',
|
||||
description: 'description',
|
||||
weaponName: 'weaponName',
|
||||
category: 'category',
|
||||
schemeContent: 'schemeContent',
|
||||
contentEncrypted: 'contentEncrypted',
|
||||
price: 'price',
|
||||
viewsCount: 'viewsCount',
|
||||
downloadsCount: 'downloadsCount',
|
||||
likesCount: 'likesCount',
|
||||
favoritesCount: 'favoritesCount',
|
||||
status: 'status',
|
||||
isOfficial: 'isOfficial',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt'
|
||||
};
|
||||
|
||||
exports.Prisma.FilterShareScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
title: 'title',
|
||||
description: 'description',
|
||||
category: 'category',
|
||||
filterContent: 'filterContent',
|
||||
contentFormat: 'contentFormat',
|
||||
viewsCount: 'viewsCount',
|
||||
likesCount: 'likesCount',
|
||||
status: 'status',
|
||||
createdAt: 'createdAt',
|
||||
updatedAt: 'updatedAt'
|
||||
};
|
||||
|
||||
exports.Prisma.FavoriteScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
targetType: 'targetType',
|
||||
targetId: 'targetId',
|
||||
createdAt: 'createdAt'
|
||||
};
|
||||
|
||||
exports.Prisma.LikeScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
targetType: 'targetType',
|
||||
targetId: 'targetId',
|
||||
createdAt: 'createdAt'
|
||||
};
|
||||
|
||||
exports.Prisma.CategoryScalarFieldEnum = {
|
||||
id: 'id',
|
||||
name: 'name',
|
||||
type: 'type',
|
||||
sortOrder: 'sortOrder',
|
||||
isActive: 'isActive',
|
||||
createdAt: 'createdAt'
|
||||
};
|
||||
|
||||
exports.Prisma.UserLogScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
action: 'action',
|
||||
targetType: 'targetType',
|
||||
targetId: 'targetId',
|
||||
installId: 'installId',
|
||||
deviceHash: 'deviceHash',
|
||||
ipAddress: 'ipAddress',
|
||||
createdAt: 'createdAt'
|
||||
};
|
||||
|
||||
exports.Prisma.DeviceBindingScalarFieldEnum = {
|
||||
id: 'id',
|
||||
userId: 'userId',
|
||||
installId: 'installId',
|
||||
deviceHash: 'deviceHash',
|
||||
boundAt: 'boundAt',
|
||||
lastActiveAt: 'lastActiveAt',
|
||||
isActive: 'isActive'
|
||||
};
|
||||
|
||||
exports.Prisma.SortOrder = {
|
||||
asc: 'asc',
|
||||
desc: 'desc'
|
||||
};
|
||||
|
||||
exports.Prisma.QueryMode = {
|
||||
default: 'default',
|
||||
insensitive: 'insensitive'
|
||||
};
|
||||
|
||||
exports.Prisma.NullsOrder = {
|
||||
first: 'first',
|
||||
last: 'last'
|
||||
};
|
||||
|
||||
|
||||
exports.Prisma.ModelName = {
|
||||
User: 'User',
|
||||
VipCard: 'VipCard',
|
||||
Scheme: 'Scheme',
|
||||
SchemeAob: 'SchemeAob',
|
||||
FilterShare: 'FilterShare',
|
||||
Favorite: 'Favorite',
|
||||
Like: 'Like',
|
||||
Category: 'Category',
|
||||
UserLog: 'UserLog',
|
||||
DeviceBinding: 'DeviceBinding'
|
||||
};
|
||||
|
||||
/**
|
||||
* This is a stub Prisma Client that will error at runtime if called.
|
||||
*/
|
||||
class PrismaClient {
|
||||
constructor() {
|
||||
return new Proxy(this, {
|
||||
get(target, prop) {
|
||||
let message
|
||||
const runtime = getRuntime()
|
||||
if (runtime.isEdge) {
|
||||
message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either:
|
||||
- Use Prisma Accelerate: https://pris.ly/d/accelerate
|
||||
- Use Driver Adapters: https://pris.ly/d/driver-adapters
|
||||
`;
|
||||
} else {
|
||||
message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).'
|
||||
}
|
||||
|
||||
message += `
|
||||
If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report`
|
||||
|
||||
throw new Error(message)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
exports.PrismaClient = PrismaClient
|
||||
|
||||
Object.assign(exports, Prisma)
|
||||
Reference in New Issue
Block a user