54 lines
1.2 KiB
SQL
54 lines
1.2 KiB
SQL
-- name: ListScheduleDaysByProjectMonth :many
|
|
SELECT * FROM schedule_days
|
|
WHERE project_id = sqlc.arg(project_id) AND date LIKE sqlc.arg(month) || '%'
|
|
ORDER BY date ASC;
|
|
|
|
-- name: GetScheduleDay :one
|
|
SELECT * FROM schedule_days
|
|
WHERE id = ?;
|
|
|
|
-- name: CreateScheduleDay :one
|
|
INSERT INTO schedule_days (id, project_id, date, status, note)
|
|
VALUES (?, ?, ?, ?, ?)
|
|
RETURNING *;
|
|
|
|
-- name: UpdateScheduleDay :one
|
|
UPDATE schedule_days
|
|
SET status = ?, note = ?, updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = ?
|
|
RETURNING *;
|
|
|
|
-- name: ListTimeSlotsByDay :many
|
|
SELECT * FROM time_slots
|
|
WHERE schedule_day_id = ?
|
|
ORDER BY start_time ASC;
|
|
|
|
-- name: GetTimeSlot :one
|
|
SELECT * FROM time_slots
|
|
WHERE id = ?;
|
|
|
|
-- name: CreateTimeSlot :one
|
|
INSERT INTO time_slots (id, schedule_day_id, start_time, end_time, status)
|
|
VALUES (?, ?, ?, ?, ?)
|
|
RETURNING *;
|
|
|
|
-- name: UpdateTimeSlot :one
|
|
UPDATE time_slots
|
|
SET start_time = ?,
|
|
end_time = ?,
|
|
status = ?,
|
|
updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = ?
|
|
RETURNING *;
|
|
|
|
-- name: DeleteTimeSlotsByProject :exec
|
|
DELETE FROM time_slots
|
|
WHERE schedule_day_id IN (
|
|
SELECT id FROM schedule_days
|
|
WHERE project_id = ?
|
|
);
|
|
|
|
-- name: DeleteScheduleDaysByProject :exec
|
|
DELETE FROM schedule_days
|
|
WHERE project_id = ?;
|