-- 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 = ?;