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(),
|
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 UserType = InferSelectModel<typeof usersTable>;
|
||||||
export type WorkflowType = InferSelectModel<typeof workflowTable>;
|
export type WorkflowType = InferSelectModel<typeof workflowTable>;
|
||||||
export type MachineType = InferSelectModel<typeof machinesTable>;
|
export type MachineType = InferSelectModel<typeof machinesTable>;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user