import { sql } from 'drizzle-orm'
import type { Transaction } from '@platform-modules/db'
import type { InventorySchema } from './schema.js'
import { assertUuid } from './types.js'

export async function release(
  tx: Transaction<InventorySchema>,
  reservationId: string,
): Promise<void> {
  assertUuid(reservationId, 'reservationId')

  await tx.execute(sql`
    UPDATE stock_reservation
    SET released_at = now()
    WHERE id = ${reservationId}::uuid
      AND released_at IS NULL
      AND consumed_at IS NULL
  `)
}
