From d414bdf2f8308cc55d74853a0d6bb1ff7e1a66ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrej=20Rama=C5=A1euski?= <andrej@x2.cz> Date: Thu, 3 Dec 2020 19:49:21 +0100 Subject: [PATCH] Nove attributy streamu a zaznamu --- lib/PiTube/Schema/Result/Record.pm | 1 + lib/PiTube/Schema/Result/Stream.pm | 1 + lib/PiTube/Schema/Result/Stream_view.pm | 8 -------- sql/migrations.sql | 26 +++++++++++++++++++++++++ 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/lib/PiTube/Schema/Result/Record.pm b/lib/PiTube/Schema/Result/Record.pm index 70d40ff..f442b20 100644 --- a/lib/PiTube/Schema/Result/Record.pm +++ b/lib/PiTube/Schema/Result/Record.pm @@ -20,6 +20,7 @@ __PACKAGE__->add_columns( begin end is_active + is_indexed is_protected stream_id publish_user_id diff --git a/lib/PiTube/Schema/Result/Stream.pm b/lib/PiTube/Schema/Result/Stream.pm index 6f65fea..844c993 100644 --- a/lib/PiTube/Schema/Result/Stream.pm +++ b/lib/PiTube/Schema/Result/Stream.pm @@ -19,6 +19,7 @@ __PACKAGE__->add_columns( qw( is_active is_public + is_live key name description diff --git a/lib/PiTube/Schema/Result/Stream_view.pm b/lib/PiTube/Schema/Result/Stream_view.pm index e1bb52d..112436d 100644 --- a/lib/PiTube/Schema/Result/Stream_view.pm +++ b/lib/PiTube/Schema/Result/Stream_view.pm @@ -14,14 +14,6 @@ __PACKAGE__->add_columns(qw( publish_user_name )); -sub is_live { - my $self = shift; - my $max_age = shift // 60; - - return 0 if ! $self->publish_last_age; - return $self->publish_last_age < $max_age ? 1 : 0; -} - sub is_writeable { my $self = shift; my $acl = shift // 0; diff --git a/sql/migrations.sql b/sql/migrations.sql index 8a4887c..d593bd6 100644 --- a/sql/migrations.sql +++ b/sql/migrations.sql @@ -69,6 +69,7 @@ create table "records" ( "id" integer not null default nextval('uid_seq'), "begin" timestamp(0) not null default now(), "end" timestamp(0), + "deleted" timestamp(0), "is_active" bool not null default true, "is_protected" bool not null default false, "stream_id" integer not null, @@ -94,3 +95,28 @@ from "records" left join "users" on ("records"."publish_user_id" = "users"."id") join "streams" on ("records"."stream_id" = "streams"."id") ; + +-- 6 up +drop view "records_view"; +drop view "streams_view"; +alter table "streams" add "is_live" boolean not null default 'f'; +alter table "records" add "is_indexed" boolean not null default 'f'; + +create view "streams_view" as +select "streams".*, + extract(epoch from now()-"publish_last") as "publish_last_age", + "users"."name" as "publish_user_name" +from "streams" +left join "users" on ("streams"."publish_user_id" = "users"."id") +; + +create view "records_view" as +select "records".*, + "streams"."key" as "stream_key", + "streams"."name" as "stream_name", + "streams"."is_public" as "stream_is_public", + "users"."name" as "publish_user_name" +from "records" +left join "users" on ("records"."publish_user_id" = "users"."id") +join "streams" on ("records"."stream_id" = "streams"."id") +; -- GitLab