const bidSubQuery = drizzle
.select({
itemId: auctionBids.itemId,
username: auctionBids.userName,
bidAmount: auctionBids.bidAmount,
useCase: auctionBids.useCase,
})
.from(auctionBids)
.where(eq(auctionBids.userId, userId))
.groupBy(auctionBids.itemId)
.as("bidSubQuery");
const items = (await drizzle
.select({
item: auctionItems.item,
trait: auctionItems.trait,
guild: auctionItems.guild,
rarity: auctionItems.rarity,
timestamp: auctionItems.expiration,
username: bidSubQuery.username,
bidAmount: bidSubQuery.bidAmount,
useCase: bidSubQuery.useCase,
})
.from(auctionItems)
.leftJoin(bidSubQuery, eq(auctionItems.id, bidSubQuery.itemId))
.where(
and(
eq(auctionItems.guild, guild),
eq(auctionItems.rarity, rarity),
gt(auctionItems.expiration, currentTimestamp),
),
)
.orderBy(auctionItems.expiration)) as AuctionItem[];
const bidSubQuery = drizzle
.select({
itemId: auctionBids.itemId,
username: auctionBids.userName,
bidAmount: auctionBids.bidAmount,
useCase: auctionBids.useCase,
})
.from(auctionBids)
.where(eq(auctionBids.userId, userId))
.groupBy(auctionBids.itemId)
.as("bidSubQuery");
const items = (await drizzle
.select({
item: auctionItems.item,
trait: auctionItems.trait,
guild: auctionItems.guild,
rarity: auctionItems.rarity,
timestamp: auctionItems.expiration,
username: bidSubQuery.username,
bidAmount: bidSubQuery.bidAmount,
useCase: bidSubQuery.useCase,
})
.from(auctionItems)
.leftJoin(bidSubQuery, eq(auctionItems.id, bidSubQuery.itemId))
.where(
and(
eq(auctionItems.guild, guild),
eq(auctionItems.rarity, rarity),
gt(auctionItems.expiration, currentTimestamp),
),
)
.orderBy(auctionItems.expiration)) as AuctionItem[];