create or replace view public.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 public.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 public.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 public.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,
    "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 "item" on "category_item".category_item_item_uuid = "item".item_uuid;

create or replace view public.v_item as
  select
    "item".*,
    "image".image_uuid,
    "image".image_featured,
    "image".image_mime_type,
    "image".image_date_uploaded,
    "user".user_email
  from "item"
    left join "image" on "item".item_uuid = "image".image_item_uuid
    left join "user" on "image".image_uploader_uuid = "user".user_uuid;