|
|
|
create or replace view sos.v_session as
|
|
|
|
select
|
|
|
|
"session".*,
|
|
|
|
"session_user".user_email as session_user_email,
|
|
|
|
"session_user".user_email_confirmed as session_user_email_confirmed,
|
|
|
|
"session_user".user_password_hash as session_user_password_hash,
|
|
|
|
"session_user".user_time_registered as session_user_time_registered,
|
|
|
|
"session_user".user_time_email_confirmed as session_user_time_email_confirmed,
|
|
|
|
"login_link".*
|
|
|
|
from "session"
|
|
|
|
left join "user" "session_user" on "session".session_user_uuid = "session_user".user_uuid
|
|
|
|
left join "login_link" on "session".session_originating_link = "login_link".login_link_uuid;
|
|
|
|
|
|
|
|
create or replace view sos.v_login_link as
|
|
|
|
select
|
|
|
|
*
|
|
|
|
from "login_link"
|
|
|
|
left join "user" on "login_link".login_link_user_uuid = "user".user_uuid;
|
|
|
|
|
|
|
|
create or replace view sos.v_cart as
|
|
|
|
select
|
|
|
|
*
|
|
|
|
from "cart"
|
|
|
|
left join "cart_item" on "cart".cart_uuid = "cart_item".cart_item_cart_uuid
|
|
|
|
left join "item" on "cart_item".cart_item_item_uuid = "item".item_uuid;
|
|
|
|
|
|
|
|
create or replace view sos.v_item as
|
|
|
|
select
|
|
|
|
"item".*,
|
|
|
|
"image".image_uuid,
|
|
|
|
"image".image_featured,
|
|
|
|
"image".image_mime_type,
|
|
|
|
"image".image_date_uploaded,
|
|
|
|
"user".user_email,
|
|
|
|
num_added - num_removed as item_number_in_stock
|
|
|
|
from "item"
|
|
|
|
left join "image" on item.item_uuid = image.image_item_uuid
|
|
|
|
left join "user" on image.image_uploader_uuid = "user".user_uuid
|
|
|
|
left join
|
|
|
|
(
|
|
|
|
select
|
|
|
|
stockchange_item_uuid,
|
|
|
|
sum(case when stockchange_direction = 'added' then stockchange_change end)::int4 as num_added,
|
|
|
|
sum(case when stockchange_direction = 'subtracted' then stockchange_change end)::int4 as num_removed
|
|
|
|
from "item_stockchange"
|
|
|
|
group by stockchange_item_uuid
|
|
|
|
) stock_counts
|
|
|
|
on stock_counts.stockchange_item_uuid = item.item_uuid;
|
|
|
|
|
|
|
|
create or replace view sos.v_category as
|
|
|
|
select
|
|
|
|
"category".*,
|
|
|
|
"child_category".category_uuid as child_category_uuid,
|
|
|
|
"child_category".category_name as child_category_name,
|
|
|
|
"child_category".category_urlslug as child_category_urlslug,
|
|
|
|
v_item.*
|
|
|
|
from "category"
|
|
|
|
left join "category_category" on "category".category_uuid = "category_category".category_category_parent_uuid
|
|
|
|
left join "category" "child_category" on "category_category".category_category_child_uuid = "child_category".category_uuid
|
|
|
|
left join "category_item" on "category".category_uuid = "category_item".category_item_category_uuid
|
|
|
|
left join sos.v_item on "category_item".category_item_item_uuid = item_uuid;
|