import { sql } from 'drizzle-orm';
import type { DrizzleClient } from '@/server/db/client';

export async function refreshDealCache(tx: DrizzleClient, dealId: string): Promise<void> {
  await tx.execute(sql`
    UPDATE deals SET
      min_price            = (SELECT MIN(discounted_price) FROM deal_skus WHERE deal_id = ${dealId} AND is_active),
      max_price            = (SELECT MAX(discounted_price) FROM deal_skus WHERE deal_id = ${dealId} AND is_active),
      max_discount_percent = (SELECT MAX(discount_percent) FROM deal_skus WHERE deal_id = ${dealId} AND is_active),
      stock_remaining      = (SELECT COALESCE(SUM(quantity_total - quantity_sold), 0)
                                FROM deal_skus WHERE deal_id = ${dealId} AND is_active)
    WHERE id = ${dealId}
  `);
}
