Files
2026-09-22 22:51:19 +08:00

41 lines
949 B
SQL

-- name: CreateBooking :one
INSERT INTO bookings (id, user_id, project_id, slot_id, phone, status, remark, confirm_token)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
RETURNING *;
-- name: GetBooking :one
SELECT * FROM bookings
WHERE id = ?;
-- name: ListBookingsByPhone :many
SELECT * FROM bookings
WHERE phone = ?
ORDER BY created_at DESC;
-- name: ListBookings :many
SELECT * FROM bookings
ORDER BY created_at DESC
LIMIT ? OFFSET ?;
-- name: ListBookingsByStatus :many
SELECT * FROM bookings
WHERE status = ?
ORDER BY created_at DESC
LIMIT ? OFFSET ?;
-- name: CountBookingsByProject :one
SELECT COUNT(*) FROM bookings
WHERE project_id = ?;
-- name: UpdateBookingStatus :one
UPDATE bookings
SET status = ?, updated_at = CURRENT_TIMESTAMP
WHERE id = ?
RETURNING *;
-- name: CancelBooking :one
UPDATE bookings
SET status = 'cancelled_by_user', updated_at = CURRENT_TIMESTAMP
WHERE id = ? AND phone = ? AND status IN ('pending', 'confirmed')
RETURNING *;