diff --git a/src/server/db/schema.ts b/src/server/db/schema.ts index fe29446..0039945 100644 --- a/src/server/db/schema.ts +++ b/src/server/db/schema.ts @@ -21,7 +21,9 @@ export const producers = createTable( name: text("name").notNull().unique(), description: text("description"), imageUrl: text("imageUrl"), - countryId: uuid("countryId").notNull(), + countryId: uuid("countryId") + .references(() => countries.id, { onDelete: "cascade" }) + .notNull(), createdAt: timestamp("createdAt").defaultNow().notNull(), updatedAt: timestamp("updatedAt").defaultNow(), }, @@ -52,7 +54,9 @@ export const wines = createTable("wine", { type: typeEnum("type").notNull(), description: text("description"), imageUrl: text("imageUrl"), - producerId: uuid("producerId").notNull(), + producerId: uuid("producerId") + .references(() => producers.id, { onDelete: "cascade" }) + .notNull(), subRegionId: uuid("subRegionId"), regionId: uuid("regionId").notNull(), countryId: uuid("countryId").notNull(), @@ -87,7 +91,9 @@ export const subRegions = createTable( { id: uuid("id").primaryKey().notNull().defaultRandom(), name: text("name").notNull().unique(), - regionId: uuid("regionId").notNull(), + regionId: uuid("regionId") + .references(() => regions.id, { onDelete: "cascade" }) + .notNull(), }, (t) => ({ uniqueSubRegion: unique().on(t.name, t.regionId), @@ -107,7 +113,9 @@ export const regions = createTable( { id: uuid("id").primaryKey().notNull().defaultRandom(), name: text("name").notNull(), - countryId: uuid("countryId").notNull(), + countryId: uuid("countryId") + .references(() => countries.id, { onDelete: "cascade" }) + .notNull(), }, (t) => ({ uniqueRegion: unique().on(t.name, t.countryId),