const products = await db
.select({
productId: productTable.id,
variantId: productVariantTable.id,
name: sql<string>`concat(${productTable.name}, ', ', string_agg(${attributeValueTable.value}, ', '))`
.mapWith(String)
.as("name"),
updatedAt: productTable.updatedAt
})
.from(productTable)
.innerJoin(
productVariantTable,
eq(productTable.id, productVariantTable.productId)
)
.leftJoin(
productVariantAttributeTable,
eq(productVariantTable.id, productVariantAttributeTable.variantId)
)
.innerJoin(
attributeValueTable,
eq(productVariantAttributeTable.attributeValueId, attributeValueTable.id)
)
.groupBy(productVariantTable.id);
const mapped: MetadataRoute.Sitemap = products.flatMap((product) => ({
url: getProductVariantUrl(
slugify(product.name),
product.productId,
product.variantId
),
lastModified: product.updatedAt,
priority: 0.8,
changeFrequency: "weekly"
}));
const products = await db
.select({
productId: productTable.id,
variantId: productVariantTable.id,
name: sql<string>`concat(${productTable.name}, ', ', string_agg(${attributeValueTable.value}, ', '))`
.mapWith(String)
.as("name"),
updatedAt: productTable.updatedAt
})
.from(productTable)
.innerJoin(
productVariantTable,
eq(productTable.id, productVariantTable.productId)
)
.leftJoin(
productVariantAttributeTable,
eq(productVariantTable.id, productVariantAttributeTable.variantId)
)
.innerJoin(
attributeValueTable,
eq(productVariantAttributeTable.attributeValueId, attributeValueTable.id)
)
.groupBy(productVariantTable.id);
const mapped: MetadataRoute.Sitemap = products.flatMap((product) => ({
url: getProductVariantUrl(
slugify(product.name),
product.productId,
product.variantId
),
lastModified: product.updatedAt,
priority: 0.8,
changeFrequency: "weekly"
}));