import { mysqlTable, int, varchar, boolean, decimal, datetime, index } from "drizzle-orm/mysql-core" export const tcgcards = mysqlTable("tcgcards", { productId: int().primaryKey(), productName: varchar({ length: 255 }).notNull(), productLineName: varchar({ length: 255 }).default("").notNull(), productLineUrlName: varchar({ length: 255 }).default("").notNull(), productStatusId: int().default(0).notNull(), productTypeId: int().default(0).notNull(), productUrlName: varchar({ length: 255 }).default("").notNull(), rarityName: varchar({ length: 100 }).default("").notNull(), sealed: boolean().default(false).notNull(), sellerListable: boolean().default(false).notNull(), setId: int(), shippingCategoryId: int(), duplicate: boolean().default(false).notNull(), foilOnly: boolean().default(false).notNull(), maxFulfillableQuantity: int(), totalListings: int(), score: decimal({ precision: 10, scale: 2, mode: 'number' }), lowestPrice: decimal({ precision: 10, scale: 2, mode: 'number' }), lowestPriceWithShipping: decimal({ precision: 10, scale: 2, mode: 'number' }), marketPrice: decimal({ precision: 10, scale: 2, mode: 'number' }), medianPrice: decimal({ precision: 10, scale: 2, mode: 'number' }), attack1: varchar({ length: 1024 }), attack2: varchar({ length: 1024 }), attack3: varchar({ length: 1024 }), attack4: varchar({ length: 1024 }), cardType: varchar({ length: 100 }), cardTypeB: varchar({ length: 100 }), energyType: varchar({ length: 100 }), flavorText: varchar({ length: 1000 }), hp: int(), number: varchar({ length: 50 }).default("").notNull(), releaseDate: datetime(), resistance: varchar({ length: 100 }), retreatCost: varchar({ length: 100 }), stage: varchar({ length: 100 }), weakness: varchar({ length: 100 }), Artist: varchar({ length: 255 }), }); export const cards = mysqlTable("cards", { cardId: int().notNull().primaryKey().autoincrement(), productId: int().notNull(), variant: varchar({ length: 100 }).notNull(), productName: varchar({ length: 255 }), productLineName: varchar({ length: 255 }), productUrlName: varchar({ length: 255 }).default("").notNull(), rarityName: varchar({ length: 100 }), sealed: boolean().default(false).notNull(), setId: int(), cardType: varchar({ length: 100 }), energyType: varchar({ length: 100 }), number: varchar({ length: 50 }), Artist: varchar({ length: 255 }), }, (table) => [ index("card_productIdIdx").on(table.productId, table.variant), ]); export const tcg_overrides = mysqlTable("tcg_overrides", { productId: int().primaryKey(), productName: varchar({ length: 255 }), productLineName: varchar({ length: 255 }), productUrlName: varchar({ length: 255 }).default("").notNull(), rarityName: varchar({ length: 100 }), sealed: boolean().default(false).notNull(), setId: int(), cardType: varchar({ length: 100 }), energyType: varchar({ length: 100 }), number: varchar({ length: 50 }), Artist: varchar({ length: 255 }), }); export const sets = mysqlTable("sets", { setId: int().primaryKey(), setName: varchar({ length: 255 }).notNull(), setUrlName: varchar({ length: 255 }).notNull(), setCode: varchar({ length: 100 }).notNull(), }); export const skus = mysqlTable("skus", { skuId: int().primaryKey(), cardId: int().default(0).notNull(), productId: int().notNull(), condition: varchar({ length: 255 }).notNull(), language: varchar({ length: 100 }).notNull(), variant: varchar({ length: 100 }).notNull(), calculatedAt: datetime(), highestPrice: decimal({ precision: 10, scale: 2 }), lowestPrice: decimal({ precision: 10, scale: 2 }), marketPrice: decimal({ precision: 10, scale: 2 }), priceCount: int(), }, (table) => [ index("productIdIdx").on(table.productId, table.variant), ]); export const processingSkus = mysqlTable("processingSkus", { skuId: int().primaryKey(), });