diff --git a/lib/PiTube/Schema/Result/Record.pm b/lib/PiTube/Schema/Result/Record.pm index 70d40ff06c2b2da4f3043526b308112744665e08..f442b20895ee3ad15f7d20bd3da9d179eac48a06 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 6f65fea9678c9d2c1036b48d073cb8c3e99628bb..844c993c8048fb9ac77f08fc08e17c0b393d36f8 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 e1bb52d4a0208cbba0d94c7cbc00d0bbcd10edb5..112436d5b51147370baa9cf6c4fb13f2e2f8a214 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 8a4887c2e6ff1fdd544042872ebb9e9880c27aaa..d593bd6c4014b4cce4c2d5923400c9321c96815f 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") +;