diff --git a/internal/database/queries/queries.sql b/internal/database/queries/queries.sql index a9fb1ef..ba45e36 100644 --- a/internal/database/queries/queries.sql +++ b/internal/database/queries/queries.sql @@ -16,13 +16,39 @@ SELECT id, email, username, theme, first_name, last_name, role, created_at, upda SELECT id, email, username, password_hash, theme, first_name, last_name, role, created_at, updated_at FROM users WHERE email = $1 OR username = $1; -- name: GetUser :one -SELECT id, email, username, theme, first_name, last_name, role, created_at, updated_at FROM users WHERE id = $1; +SELECT + u.id, + u.email, + u.username, + u.theme, + u.first_name, + u.last_name, + u.role, + u.max_devices, + u.created_at, + u.updated_at, + (SELECT COUNT(*) FROM devices WHERE user_id = u.id) as device_count +FROM users u +WHERE u.id = $1; -- name: GetUserPasswordHash :one SELECT password_hash FROM users WHERE id = $1; -- name: ListUsers :many -SELECT id, email, username, theme, first_name, last_name, role, created_at, updated_at FROM users ORDER BY created_at DESC; +SELECT + u.id, + u.email, + u.username, + u.theme, + u.first_name, + u.last_name, + u.role, + u.max_devices, + u.created_at, + u.updated_at, + (SELECT COUNT(*) FROM devices WHERE user_id = u.id) as device_count +FROM users u +ORDER BY u.created_at DESC; -- Library Types queries -- name: GetLibraryTypes :many @@ -317,11 +343,15 @@ SELECT COUNT(*) FROM devices WHERE user_id = $1; -- name: DeleteUser :exec DELETE FROM users WHERE id = $1; --- name: UpdateScanSettings :exec -UPDATE users SET scan_frequency_minutes = $2, auto_scan_enabled = $3, updated_at = NOW() WHERE id = $1; +-- System Settings queries +-- name: GetSystemSetting :one +SELECT setting_value FROM system_settings WHERE setting_key = $1; --- name: GetScanSettings :one -SELECT scan_frequency_minutes, auto_scan_enabled FROM users WHERE id = $1; +-- name: UpdateSystemSetting :exec +UPDATE system_settings SET setting_value = $2, updated_at = NOW() WHERE setting_key = $1; + +-- name: GetAllSystemSettings :many +SELECT setting_key, setting_value, description FROM system_settings ORDER BY setting_key; -- name: CreateMediaRating :one INSERT INTO media_ratings (media_item_id, user_id, rating)