0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-27 00:49:28 -05:00
penpot/backend/resources/sql/projects.sql

49 lines
1.1 KiB
SQL

-- :name create-project :<! :1
insert into projects (id, "user", name)
values (:id, :user, :name)
returning *;
-- :name update-project :<! :1
update projects
set name = :name,
version = :version
where id = :id
and "user" = :user
and deleted_at is null
returning *;
-- :name delete-project :! :n
update projects
set deleted_at = clock_timestamp()
where id = :id
and "user" = :user
and deleted_at is null;
-- :name get-project-by-id :? :1
select p.*
from projects as p
where p.id = :id
and p.deleted_at is null;
-- :name get-projects :? :*
select pr.*,
ps.token as share_token
from projects as pr
inner join project_shares as ps
on (ps.project = pr.id)
where pr.deleted_at is null
and pr."user" = :user
order by pr.created_at asc;
-- :name get-project-by-share-token :? :*
select p.*
from projects as p
inner join project_shares as ps
on (p.id = ps.project)
where ps.token = :token;
-- :name get-share-tokens-for-project
select s.*
from project_shares as s
where s.project = :project
order by s.created_at desc;