0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-10 08:50:57 -05:00
penpot/backend/resources/sql/pages.sql
2016-11-20 20:04:52 +01:00

89 lines
2.1 KiB
SQL

-- :name create-page :<! :1
insert into pages (id, "user", project, name, data, metadata)
values (:id, :user, :project, :name, :data, :metadata)
returning *;
-- :name update-page :<! :1
update pages
set name = :name,
data = :data,
version = :version,
metadata = :metadata
where id = :id
and "user" = :user
and deleted_at is null
returning *;
-- :name update-page-metadata :<! :1
update pages
set name = :name,
version = :version,
metadata = :metadata
where id = :id
and "user" = :user
and deleted_at is null
returning *;
-- :name delete-page :! :n
update pages
set deleted_at = clock_timestamp()
where id = :id
and "user" = :user
and deleted_at is null;
-- :name get-pages :? :*
select pg.* from pages as pg
where pg.user = :user
and pg.deleted_at is null
order by created_at asc;
-- :name get-page-by-id :? :1
select pg.* from pages as pg
where pg.id = :id
and pg.deleted_at is null;
-- :name get-pages-for-user-and-project :? :*
select pg.*,
(row_number() OVER (order by created_at asc) -1) as index
from pages as pg
where pg.user = :user
and pg.project = :project
and pg.deleted_at is null
order by pg.created_at asc;
-- :name get-pages-for-project :? :*
select pg.*,
(row_number() OVER (order by created_at asc) -1) as index
from pages as pg
where pg.project = :project
and pg.deleted_at is null
order by created_at asc;
-- :name create-page-history :! :n
insert into page_history (id, "user", page, pinned, label, data, version);
values (:id, :user, :page, :pinned :label, :data, :version);
-- :name get-page-history :? :*
select ph.*
from pages_history as ph
where ph.user = :user
and ph.page = :page
and ph.version < :since
--~ (when (:pinned params) "and ph.pinned = true")
order by ph.version desc
limit :max;
-- :name get-page-history-for-project :? :*
select ph.*
from pages_history as ph
inner join pages as p
on (p.id = ph.page)
where p.project = :project;
-- :name update-page-history :? :*
update pages_history
set label = :label,
pinned = :pinned
where id = :id
and "user" = :user
returning *;