import { relations } from "drizzle-orm/relations"; import { categories, items, itemImages, customers, customerSessions, customerTokens, carts, cartItems, shippingAddresses, checkouts, orders, itemDrafts, uploadLinks, itemTags, tags, checkoutItems, favorites } from "./schema"; export const itemsRelations = relations(items, ({one, many}) => ({ category: one(categories, { fields: [items.categoryId], references: [categories.id] }), itemImages: many(itemImages), cartItems: many(cartItems), orders: many(orders), itemDrafts: many(itemDrafts), itemTags: many(itemTags), checkoutItems: many(checkoutItems), favorites: many(favorites), })); export const categoriesRelations = relations(categories, ({one, many}) => ({ items: many(items), category: one(categories, { fields: [categories.parentId], references: [categories.id], relationName: "categories_parentId_categories_id" }), categories: many(categories, { relationName: "categories_parentId_categories_id" }), itemDrafts: many(itemDrafts), })); export const itemImagesRelations = relations(itemImages, ({one}) => ({ item: one(items, { fields: [itemImages.itemId], references: [items.id] }), })); export const customerSessionsRelations = relations(customerSessions, ({one}) => ({ customer: one(customers, { fields: [customerSessions.customerId], references: [customers.id] }), })); export const customersRelations = relations(customers, ({many}) => ({ customerSessions: many(customerSessions), customerTokens: many(customerTokens), carts: many(carts), shippingAddresses: many(shippingAddresses), checkouts: many(checkouts), orders: many(orders), favorites: many(favorites), })); export const customerTokensRelations = relations(customerTokens, ({one}) => ({ customer: one(customers, { fields: [customerTokens.customerId], references: [customers.id] }), })); export const cartsRelations = relations(carts, ({one, many}) => ({ customer: one(customers, { fields: [carts.customerId], references: [customers.id] }), cartItems: many(cartItems), })); export const cartItemsRelations = relations(cartItems, ({one}) => ({ cart: one(carts, { fields: [cartItems.cartId], references: [carts.id] }), item: one(items, { fields: [cartItems.itemId], references: [items.id] }), })); export const shippingAddressesRelations = relations(shippingAddresses, ({one, many}) => ({ customer: one(customers, { fields: [shippingAddresses.customerId], references: [customers.id] }), checkouts: many(checkouts), })); export const checkoutsRelations = relations(checkouts, ({one, many}) => ({ customer: one(customers, { fields: [checkouts.customerId], references: [customers.id] }), shippingAddress: one(shippingAddresses, { fields: [checkouts.shippingAddressId], references: [shippingAddresses.id] }), orders: many(orders), checkoutItems: many(checkoutItems), })); export const ordersRelations = relations(orders, ({one}) => ({ item: one(items, { fields: [orders.itemId], references: [items.id] }), customer: one(customers, { fields: [orders.customerId], references: [customers.id] }), checkout: one(checkouts, { fields: [orders.checkoutId], references: [checkouts.id] }), })); export const itemDraftsRelations = relations(itemDrafts, ({one}) => ({ item: one(items, { fields: [itemDrafts.itemId], references: [items.id] }), uploadLink: one(uploadLinks, { fields: [itemDrafts.uploadLinkId], references: [uploadLinks.id] }), category: one(categories, { fields: [itemDrafts.aiCategoryId], references: [categories.id] }), })); export const uploadLinksRelations = relations(uploadLinks, ({many}) => ({ itemDrafts: many(itemDrafts), })); export const itemTagsRelations = relations(itemTags, ({one}) => ({ item: one(items, { fields: [itemTags.itemId], references: [items.id] }), tag: one(tags, { fields: [itemTags.tagId], references: [tags.id] }), })); export const tagsRelations = relations(tags, ({many}) => ({ itemTags: many(itemTags), })); export const checkoutItemsRelations = relations(checkoutItems, ({one}) => ({ checkout: one(checkouts, { fields: [checkoutItems.checkoutId], references: [checkouts.id] }), item: one(items, { fields: [checkoutItems.itemId], references: [items.id] }), })); export const favoritesRelations = relations(favorites, ({one}) => ({ customer: one(customers, { fields: [favorites.customerId], references: [customers.id] }), item: one(items, { fields: [favorites.itemId], references: [items.id] }), }));