-- name: CreateFollow :one
WITH inserted_follow as (
  INSERT INTO follows (id, created_at, updated_at, feed_id, user_id)
  VALUES (
    $1,
    $2,
    $3,
    $4,
    $5
  )
  RETURNING *
)
SELECT inserted_follow.*,
  feeds.name as feed_name,
  users.name as user_name
FROM inserted_follow
INNER JOIN users
  ON inserted_follow.user_id = users.id
INNER JOIN feeds
  ON inserted_follow.feed_id = feeds.id;

-- name: GetFollowsForUser :many
SELECT follows.*, feeds.name as feed_name FROM follows
INNER JOIN feeds
  ON follows.feed_id = feeds.id
WHERE follows.user_id = $1;

-- name: DeleteFollowForUser :exec
DELETE FROM follows
WHERE feed_id = $1 AND user_id = $2;
