-- name: UpsertCalendarMember :exec INSERT INTO calendar_members (calendar_id, user_id, role) VALUES ($1, $2, $3) ON CONFLICT (calendar_id, user_id) DO UPDATE SET role = $3; -- name: GetCalendarMemberRole :one SELECT role FROM calendar_members WHERE calendar_id = $1 AND user_id = $2; -- name: ListCalendarMembers :many SELECT cm.user_id, u.email, cm.role FROM calendar_members cm JOIN users u ON u.id = cm.user_id WHERE cm.calendar_id = $1 AND u.deleted_at IS NULL ORDER BY cm.role ASC; -- name: DeleteCalendarMember :exec DELETE FROM calendar_members WHERE calendar_id = $1 AND user_id = $2; -- name: DeleteAllCalendarMembers :exec DELETE FROM calendar_members WHERE calendar_id = $1;