Files
descrybe/apps/api/sql/queries/memberships.sql
T

30 lines
763 B
SQL
Raw Normal View History

-- name: CreateMembership :one
INSERT INTO memberships (company_id, user_id, role, status)
VALUES ($1, $2, $3, $4)
RETURNING *;
-- name: GetMembership :one
SELECT * FROM memberships
WHERE company_id = $1 AND user_id = $2
LIMIT 1;
-- name: ListMembershipsByCompany :many
SELECT m.*, u.email, u.name AS user_name
FROM memberships m
JOIN users u ON u.id = m.user_id
WHERE m.company_id = $1
ORDER BY m.created_at;
-- name: ListMembershipsByUser :many
SELECT m.*, c.name AS company_name
FROM memberships m
JOIN companies c ON c.id = m.company_id
WHERE m.user_id = $1 AND m.status = 'active'
ORDER BY m.created_at;
-- name: DeactivateMembership :one
UPDATE memberships
SET status = 'inactive', updated_at = now()
WHERE company_id = $1 AND user_id = $2
RETURNING *;