htmgo/examples/chat/internal/db/queries.sql

48 lines
1.3 KiB
MySQL
Raw Normal View History

2024-09-30 22:31:09 +00:00
-- name: CreateChatRoom :one
2024-10-01 03:08:52 +00:00
INSERT INTO chat_rooms (id, name, created_at, updated_at)
VALUES (?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
2024-09-30 22:31:09 +00:00
RETURNING id, name, created_at, updated_at, last_message_sent_at;
-- name: InsertMessage :exec
2024-10-01 03:08:52 +00:00
INSERT INTO messages (chat_room_id, user_id, username, message, created_at, updated_at)
VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
RETURNING id, chat_room_id, user_id, username, message, created_at, updated_at;
2024-09-30 22:31:09 +00:00
-- name: UpdateChatRoomLastMessageSentAt :exec
UPDATE chat_rooms
SET last_message_sent_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP
WHERE id = ?;
-- name: GetChatRoom :one
SELECT
id,
name,
last_message_sent_at,
created_at,
updated_at
FROM chat_rooms
WHERE chat_rooms.id = ?;
-- name: CreateUser :one
2024-10-01 03:08:52 +00:00
INSERT INTO users (name, session_id, created_at, updated_at)
VALUES (?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
RETURNING id, name, session_id, created_at, updated_at;
2024-09-30 22:31:09 +00:00
-- name: GetLastMessages :many
SELECT
messages.id,
messages.chat_room_id,
messages.user_id,
users.name AS user_name,
messages.message,
messages.created_at,
messages.updated_at
FROM messages
JOIN users ON messages.user_id = users.id
WHERE messages.chat_room_id = ?
ORDER BY messages.created_at
LIMIT ?;
2024-10-01 03:08:52 +00:00
-- name: GetUserBySessionId :one
SELECT * FROM users WHERE session_id = ?;