schema
This commit is contained in:
parent
7b61fea849
commit
90cec6b778
@ -329,6 +329,119 @@ export const apiKeyTable = dbSchema.table("api_keys", {
|
||||
updated_at: timestamp("updated_at").defaultNow().notNull(),
|
||||
});
|
||||
|
||||
const civitaiModelVersion = z.object({
|
||||
id: z.number(),
|
||||
modelId: z.number(),
|
||||
name: z.string(),
|
||||
createdAt: z.string(),
|
||||
updatedAt: z.string(),
|
||||
status: z.string(),
|
||||
publishedAt: z.string(),
|
||||
trainedWords: z.array(z.string()).optional(),
|
||||
trainingStatus: z.string().optional(),
|
||||
trainingDetails: z.string().optional(),
|
||||
baseModel: z.string(),
|
||||
baseModelType: z.string(),
|
||||
earlyAccessTimeFrame: z.number(),
|
||||
description: z.string().optional(),
|
||||
vaeId: z.string().optional(),
|
||||
stats: z.object({
|
||||
downloadCount: z.number(),
|
||||
ratingCount: z.number(),
|
||||
rating: z.number()
|
||||
}),
|
||||
files: z.array(z.object({
|
||||
id: z.number(),
|
||||
sizeKB: z.number(),
|
||||
name: z.string(),
|
||||
type: z.string(),
|
||||
metadata: z.object({
|
||||
fp: z.string(),
|
||||
size: z.string(),
|
||||
format: z.string()
|
||||
}),
|
||||
pickleScanResult: z.string(),
|
||||
pickleScanMessage: z.string().optional(),
|
||||
virusScanResult: z.string(),
|
||||
virusScanMessage: z.string().optional(),
|
||||
scannedAt: z.string(),
|
||||
hashes: z.object({
|
||||
AutoV1: z.string(),
|
||||
AutoV2: z.string(),
|
||||
SHA256: z.string(),
|
||||
CRC32: z.string(),
|
||||
BLAKE3: z.string(),
|
||||
AutoV3: z.string()
|
||||
}),
|
||||
downloadUrl: z.string(),
|
||||
primary: z.boolean()
|
||||
})),
|
||||
images: z.array(z.object({
|
||||
url: z.string(),
|
||||
nsfw: z.string(),
|
||||
width: z.number(),
|
||||
height: z.number(),
|
||||
hash: z.string(),
|
||||
type: z.string(),
|
||||
metadata: z.object({
|
||||
hash: z.string(),
|
||||
size: z.number(),
|
||||
width: z.number(),
|
||||
height: z.number()
|
||||
}),
|
||||
meta: z.any()
|
||||
})),
|
||||
downloadUrl: z.string()
|
||||
});
|
||||
|
||||
const civitaiModelResponseType = z.object({
|
||||
id: z.number(),
|
||||
name: z.string(),
|
||||
description: z.string().optional(),
|
||||
type: z.string(),
|
||||
poi: z.boolean(),
|
||||
nsfw: z.boolean(),
|
||||
allowNoCredit: z.boolean(),
|
||||
allowCommercialUse: z.string(),
|
||||
allowDerivatives: z.boolean(),
|
||||
allowDifferentLicense: z.boolean(),
|
||||
stats: z.object({
|
||||
downloadCount: z.number(),
|
||||
favoriteCount: z.number(),
|
||||
commentCount: z.number(),
|
||||
ratingCount: z.number(),
|
||||
rating: z.number(),
|
||||
tippedAmountCount: z.number()
|
||||
}),
|
||||
creator: z.object({
|
||||
username: z.string(),
|
||||
image: z.string()
|
||||
}),
|
||||
tags: z.array(z.string()),
|
||||
modelVersions: z.array(civitaiModelVersion)
|
||||
});
|
||||
|
||||
|
||||
export const checkpoints = dbSchema.table("checkpoints", {
|
||||
id: uuid("id").primaryKey().defaultRandom().notNull(),
|
||||
user_id: text("user_id")
|
||||
.references(() => usersTable.id, {
|
||||
// onDelete: "cascade",
|
||||
}), // if null it's global?
|
||||
org_id: text("org_id"),
|
||||
description: text("description"),
|
||||
|
||||
civitai_id : text('civitai_id'),
|
||||
civitai_url : text('civitai_url'),
|
||||
civitai_details: jsonb("civitai_model_response").$type<z.infer<typeof civitaiModelResponseType >>(),
|
||||
|
||||
hf_url: text('hf_url'),
|
||||
s3_url: text('s3_url'),
|
||||
|
||||
created_at: timestamp("created_at").defaultNow().notNull(),
|
||||
updated_at: timestamp("updated_at").defaultNow().notNull(),
|
||||
});
|
||||
|
||||
export type UserType = InferSelectModel<typeof usersTable>;
|
||||
export type WorkflowType = InferSelectModel<typeof workflowTable>;
|
||||
export type MachineType = InferSelectModel<typeof machinesTable>;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user