diff --git a/src/v2/db/drizzle.ts b/src/v2/db/drizzle.ts index ea92129d..01bc9507 100644 --- a/src/v2/db/drizzle.ts +++ b/src/v2/db/drizzle.ts @@ -14,7 +14,6 @@ export const tableNames = { // atlas: "atlas", // atlasToAsset: "atlasToAsset", assetExternalFile: "assetExternalFile", - assetExternalFileToAsset: "assetExternalFileToAsset", assetTag: "assetTag", assetTagLikes: "assetTagLikes", assetTagAsset: "assetTagAsset", diff --git a/src/v2/db/schema/asset/asset-external-files.ts b/src/v2/db/schema/asset/asset-external-files.ts index 5edb87c0..8a9ba7d7 100644 --- a/src/v2/db/schema/asset/asset-external-files.ts +++ b/src/v2/db/schema/asset/asset-external-files.ts @@ -34,6 +34,12 @@ export const assetExternalFile = sqliteTable( onUpdate: "cascade", onDelete: "cascade", }), + assetId: text("asset_id") + .notNull() + .references(() => asset.id, { + onUpdate: "cascade", + onDelete: "cascade", + }), uploadedDate: text("uploaded_date") .notNull() .$defaultFn(() => { @@ -60,53 +66,14 @@ export type NewAssetExtrnalFile = typeof assetExternalFile.$inferInsert export const insertExtrnalFileSchema = createInsertSchema(assetExternalFile) export const selectExternalFileSchema = createSelectSchema(assetExternalFile) -export const assetExternalFileToAsset = sqliteTable( - tableNames.assetExternalFileToAsset, - { - id: text("id").primaryKey().notNull(), - assetExternalFileId: text("asset_external_file_id") - .notNull() - .references(() => assetExternalFile.id, { - onUpdate: "cascade", - onDelete: "cascade", - }), - assetId: integer("asset_id") - .notNull() - .references(() => asset.id, { - onUpdate: "cascade", - onDelete: "cascade", - }), - }, - (assetExternalFileToAsset) => { - return { - assetExternalFileToAssetIdx: index( - "asset_external_file_to_asset_id_idx" - ).on(assetExternalFileToAsset.id), - assetExternalFileToAssetFileIdx: index( - "asset_external_file_to_asset_file_id_idx" - ).on(assetExternalFileToAsset.assetExternalFileId), - assetExternalFileToAssetAssetIdx: index( - "asset_external_file_to_asset_asset_id_idx" - ).on(assetExternalFileToAsset.assetId), - } - } -) - -export type AssetExternalFileToAsset = - typeof assetExternalFileToAsset.$inferSelect -export type NewAssetExternalFileToAsset = - typeof assetExternalFileToAsset.$inferInsert -export const insertExternalFileToAssetSchema = createInsertSchema( - assetExternalFileToAsset -) -export const selectExternalFileToAssetSchema = createSelectSchema( - assetExternalFileToAsset -) - export const assetExternalFileRelations = relations( assetExternalFile, ({ one }) => ({ - assetExternalFileToAsset: one(assetExternalFileToAsset), + asset: one(asset, { + fields: [assetExternalFile.assetId], + references: [asset.id], + relationName: "asset_external_file_asset", + }), uploadedBy: one(authUser, { fields: [assetExternalFile.uploadedById], references: [authUser.id], @@ -114,19 +81,3 @@ export const assetExternalFileRelations = relations( }), }) ) - -export const assetExternalFileToAssetRelations = relations( - assetExternalFileToAsset, - ({ one }) => ({ - assetExternalFile: one(assetExternalFile, { - fields: [assetExternalFileToAsset.assetExternalFileId], - references: [assetExternalFile.id], - relationName: "asset_external_file_external_file", - }), - asset: one(asset, { - fields: [assetExternalFileToAsset.assetId], - references: [asset.id], - relationName: "asset_external_file_asset", - }), - }) -) diff --git a/src/v2/db/schema/asset/asset.ts b/src/v2/db/schema/asset/asset.ts index 71647191..5f4fdd23 100644 --- a/src/v2/db/schema/asset/asset.ts +++ b/src/v2/db/schema/asset/asset.ts @@ -11,9 +11,9 @@ import { authUser } from "../user/user" import { assetCategory } from "../categories/asset-categories" import { game } from "../game/game" import { assetTagAsset } from "../tags/asset-tags" -import { assetExternalFileToAsset } from "./asset-external-files" import { createInsertSchema, createSelectSchema } from "drizzle-zod" import { assetLikes } from "./asset-likes" +import { assetExternalFile } from "./asset-external-files" /* NOTE: Assets have a lot of relations, and can be quite complex in some cases. @@ -98,7 +98,7 @@ export const selectAssetSchema = createSelectSchema(asset) export const assetRelations = relations(asset, ({ one, many }) => ({ assetTagAsset: many(assetTagAsset), - assetExternalFileToAsset: many(assetExternalFileToAsset), + assetExternalFile: many(assetExternalFile), assetLikes: many(assetLikes), authUser: one(authUser, { fields: [asset.uploadedById, asset.uploadedByName],