xtablo-source/backend/internal/db/queries/events.sql
2026-05-16 00:35:09 +02:00

53 lines
1.7 KiB
SQL

-- name: CreateEvent :one
INSERT INTO events (tablo_id, title, event_date, start_time, end_time, description, location)
VALUES ($1, $2, $3, $4, $5, $6, $7)
RETURNING id, tablo_id, title, event_date, start_time, end_time, description, location, created_at, updated_at;
-- name: GetEventByID :one
SELECT id, tablo_id, title, event_date, start_time, end_time, description, location, created_at, updated_at
FROM events
WHERE id = $1 AND tablo_id = $2;
-- name: UpdateEvent :one
UPDATE events
SET title = $3,
event_date = $4,
start_time = $5,
end_time = $6,
description = $7,
location = $8,
updated_at = now()
WHERE id = $1 AND tablo_id = $2
RETURNING id, tablo_id, title, event_date, start_time, end_time, description, location, created_at, updated_at;
-- name: DeleteEvent :exec
DELETE FROM events
WHERE id = $1 AND tablo_id = $2;
-- name: ListUserEventsRange :many
SELECT events.id,
events.tablo_id,
events.title,
events.event_date,
events.start_time,
events.end_time,
events.description,
events.location,
events.created_at,
events.updated_at,
tablos.title AS tablo_title,
tablos.color AS tablo_color
FROM events
JOIN tablos ON tablos.id = events.tablo_id
WHERE tablos.user_id = sqlc.arg(user_id)
AND events.event_date >= sqlc.arg(start_date)
AND events.event_date <= sqlc.arg(end_date)
ORDER BY events.event_date, events.start_time, events.title;
-- name: ListEventsByTabloRange :many
SELECT id, tablo_id, title, event_date, start_time, end_time, description, location, created_at, updated_at
FROM events
WHERE tablo_id = $1
AND event_date >= $2
AND event_date <= $3
ORDER BY event_date, start_time, title;