github.com/nais/knorten@v0.0.0-20240104110906-55926958e361/pkg/database/queries/events.sql (about) 1 -- name: EventCreate :exec 2 INSERT INTO Events (owner, type, payload, status, deadline) 3 VALUES (@owner, 4 @type, 5 @payload, 6 'new', 7 @deadline); 8 9 -- name: EventGet :one 10 SELECT * 11 FROM Events 12 WHERE id = @id; 13 14 -- name: EventsByOwnerGet :many 15 SELECT * 16 FROM Events 17 WHERE owner = @owner 18 ORDER BY updated_at DESC 19 LIMIT sqlc.narg('lim'); 20 21 -- name: EventsProcessingGet :many 22 SELECT * 23 FROM events 24 WHERE status = 'processing' 25 ORDER BY created_at DESC; 26 27 -- name: EventsUpcomingGet :many 28 SELECT * 29 FROM Events 30 WHERE status = 'new' 31 OR (status = 'pending' AND updated_at + deadline::interval * retry_count < NOW()) 32 ORDER BY created_at ASC; 33 34 -- name: EventsGetType :many 35 SELECT * 36 FROM Events 37 WHERE type = @event_type; 38 39 -- name: EventSetStatus :exec 40 UPDATE Events 41 SET status = @status 42 WHERE id = @id; 43 44 -- name: EventSetPendingStatus :exec 45 UPDATE Events 46 SET status = 'pending', 47 retry_count = retry_count + 1 48 WHERE id = @id; 49 50 -- name: EventLogCreate :exec 51 INSERT INTO Event_Logs (event_id, log_type, message) 52 VALUES (@event_id, @log_type, @message); 53 54 -- name: EventLogsForEventGet :many 55 SELECT * 56 FROM event_logs 57 WHERE event_id = @id 58 ORDER BY created_at DESC;