CC-84: Smart Playlists

- introducing smart-block
This commit is contained in:
James 2012-07-25 12:44:37 -04:00
parent 722e470f6f
commit 1f3cbd8aba
56 changed files with 12502 additions and 734 deletions

View file

@ -238,6 +238,7 @@
<column name="id" phpName="DbId" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
<column name="playlist_id" phpName="DbPlaylistId" type="INTEGER" required="false"/>
<column name="file_id" phpName="DbFileId" type="INTEGER" required="false"/>
<column name="block_id" phpName="DbBlockId" type="INTEGER" required="false"/>
<column name="position" phpName="DbPosition" type="INTEGER" required="false"/>
<column name="cliplength" phpName="DbCliplength" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="cuein" phpName="DbCuein" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
@ -247,19 +248,57 @@
<foreign-key foreignTable="cc_files" name="cc_playlistcontents_file_id_fkey" onDelete="CASCADE">
<reference local="file_id" foreign="id"/>
</foreign-key>
<foreign-key foreignTable="cc_block" name="cc_playlistcontents_block_id_fkey" onDelete="CASCADE">
<reference local="block_id" foreign="id"/>
</foreign-key>
<foreign-key foreignTable="cc_playlist" name="cc_playlistcontents_playlist_id_fkey" onDelete="CASCADE">
<reference local="playlist_id" foreign="id"/>
</foreign-key>
</table>
<table name="cc_playlistcriteria" phpName="CcPlaylistcriteria">
<table name="cc_block" phpName="CcBlock">
<column name="id" phpName="DbId" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
<column name="name" phpName="DbName" type="VARCHAR" size="255" required="true" defaultValue=""/>
<column name="mtime" phpName="DbMtime" type="TIMESTAMP" size="6" required="false"/>
<column name="utime" phpName="DbUtime" type="TIMESTAMP" size="6" required="false"/>
<column name="creator_id" phpName="DbCreatorId" type="INTEGER" required="false"/>
<column name="description" phpName="DbDescription" type="VARCHAR" size="512" required="false"/>
<column name="length" phpName="DbLength" type="VARCHAR" sqlType="interval" defaultValue="00:00:00"/>
<column name="type" phpName="DbType" type="VARCHAR" size="7" defaultValue="static"/>
<behavior name="aggregate_column">
<parameter name="name" value="length" />
<parameter name="foreign_table" value="cc_blockcontents" />
<parameter name="expression" value="SUM(cliplength)" />
</behavior>
<foreign-key foreignTable="cc_subjs" name="cc_block_createdby_fkey">
<reference local="creator_id" foreign="id"/>
</foreign-key>
</table>
<table name="cc_blockcontents" phpName="CcBlockcontents">
<column name="id" phpName="DbId" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
<column name="block_id" phpName="DbBlockId" type="INTEGER" required="false"/>
<column name="file_id" phpName="DbFileId" type="INTEGER" required="false"/>
<column name="position" phpName="DbPosition" type="INTEGER" required="false"/>
<column name="cliplength" phpName="DbCliplength" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="cuein" phpName="DbCuein" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="cueout" phpName="DbCueout" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="fadein" phpName="DbFadein" type="TIME" required="false" defaultValue="00:00:00"/>
<column name="fadeout" phpName="DbFadeout" type="TIME" required="false" defaultValue="00:00:00"/>
<foreign-key foreignTable="cc_files" name="cc_blockcontents_file_id_fkey" onDelete="CASCADE">
<reference local="file_id" foreign="id"/>
</foreign-key>
<foreign-key foreignTable="cc_block" name="cc_blockcontents_block_id_fkey" onDelete="CASCADE">
<reference local="block_id" foreign="id"/>
</foreign-key>
</table>
<table name="cc_blockcriteria" phpName="CcBlockcriteria">
<column name="id" phpName="DbId" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
<column name="criteria" phpName="DbCriteria" type="VARCHAR" size="16" required="true"/>
<column name="modifier" phpName="DbModifier" type="VARCHAR" size="16" required="true"/>
<column name="value" phpName="DbValue" type="VARCHAR" size="512" required="true"/>
<column name="extra" phpName="DbExtra" type="VARCHAR" size="512" required="false"/>
<column name="playlist_id" phpName="DbPlaylistId" type="INTEGER" required="true"/>
<foreign-key foreignTable="cc_playlist" name="cc_playlistcontents_playlist_id_fkey" onDelete="CASCADE">
<reference local="playlist_id" foreign="id"/>
<column name="block_id" phpName="DbBlockId" type="INTEGER" required="true"/>
<foreign-key foreignTable="cc_block" name="cc_blockcontents_block_id_fkey" onDelete="CASCADE">
<reference local="block_id" foreign="id"/>
</foreign-key>
</table>
<table name="cc_pref" phpName="CcPref">

View file

@ -321,6 +321,7 @@ CREATE TABLE "cc_playlistcontents"
"id" serial NOT NULL,
"playlist_id" INTEGER,
"file_id" INTEGER,
"block_id" INTEGER,
"position" INTEGER,
"cliplength" interval default '00:00:00',
"cuein" interval default '00:00:00',
@ -335,24 +336,73 @@ COMMENT ON TABLE "cc_playlistcontents" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_playlistcriteria
-- cc_block
-----------------------------------------------------------------------------
DROP TABLE "cc_playlistcriteria" CASCADE;
DROP TABLE "cc_block" CASCADE;
CREATE TABLE "cc_playlistcriteria"
CREATE TABLE "cc_block"
(
"id" serial NOT NULL,
"name" VARCHAR(255) default '' NOT NULL,
"mtime" TIMESTAMP(6),
"utime" TIMESTAMP(6),
"creator_id" INTEGER,
"description" VARCHAR(512),
"length" interval default '00:00:00',
"type" VARCHAR(7) default 'static',
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_block" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_blockcontents
-----------------------------------------------------------------------------
DROP TABLE "cc_blockcontents" CASCADE;
CREATE TABLE "cc_blockcontents"
(
"id" serial NOT NULL,
"block_id" INTEGER,
"file_id" INTEGER,
"position" INTEGER,
"cliplength" interval default '00:00:00',
"cuein" interval default '00:00:00',
"cueout" interval default '00:00:00',
"fadein" TIME default '00:00:00',
"fadeout" TIME default '00:00:00',
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_blockcontents" IS '';
SET search_path TO public;
-----------------------------------------------------------------------------
-- cc_blockcriteria
-----------------------------------------------------------------------------
DROP TABLE "cc_blockcriteria" CASCADE;
CREATE TABLE "cc_blockcriteria"
(
"id" serial NOT NULL,
"criteria" VARCHAR(16) NOT NULL,
"modifier" VARCHAR(16) NOT NULL,
"value" VARCHAR(512) NOT NULL,
"extra" VARCHAR(512),
"playlist_id" INTEGER NOT NULL,
"block_id" INTEGER NOT NULL,
PRIMARY KEY ("id")
);
COMMENT ON TABLE "cc_playlistcriteria" IS '';
COMMENT ON TABLE "cc_blockcriteria" IS '';
SET search_path TO public;
@ -627,9 +677,17 @@ ALTER TABLE "cc_playlist" ADD CONSTRAINT "cc_playlist_createdby_fkey" FOREIGN KE
ALTER TABLE "cc_playlistcontents" ADD CONSTRAINT "cc_playlistcontents_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "cc_files" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_playlistcontents" ADD CONSTRAINT "cc_playlistcontents_block_id_fkey" FOREIGN KEY ("block_id") REFERENCES "cc_block" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_playlistcontents" ADD CONSTRAINT "cc_playlistcontents_playlist_id_fkey" FOREIGN KEY ("playlist_id") REFERENCES "cc_playlist" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_playlistcriteria" ADD CONSTRAINT "cc_playlistcontents_playlist_id_fkey" FOREIGN KEY ("playlist_id") REFERENCES "cc_playlist" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_block" ADD CONSTRAINT "cc_block_createdby_fkey" FOREIGN KEY ("creator_id") REFERENCES "cc_subjs" ("id");
ALTER TABLE "cc_blockcontents" ADD CONSTRAINT "cc_blockcontents_file_id_fkey" FOREIGN KEY ("file_id") REFERENCES "cc_files" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_blockcontents" ADD CONSTRAINT "cc_blockcontents_block_id_fkey" FOREIGN KEY ("block_id") REFERENCES "cc_block" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_blockcriteria" ADD CONSTRAINT "cc_blockcontents_block_id_fkey" FOREIGN KEY ("block_id") REFERENCES "cc_block" ("id") ON DELETE CASCADE;
ALTER TABLE "cc_pref" ADD CONSTRAINT "cc_pref_subjid_fkey" FOREIGN KEY ("subjid") REFERENCES "cc_subjs" ("id") ON DELETE CASCADE;