From 4ca5666bd7a183736b531d52027f5a2555e40732 Mon Sep 17 00:00:00 2001
From: Christian Pointner <equinox@helsinki.at>
Date: Fri, 29 Jul 2016 21:20:35 +0200
Subject: creating pool event works now


diff --git a/lib/RHRD/rddb.pm b/lib/RHRD/rddb.pm
index 5df0b6c..65866fc 100755
--- a/lib/RHRD/rddb.pm
+++ b/lib/RHRD/rddb.pm
@@ -347,6 +347,95 @@ sub drop_log_table
   return (1, 'OK', 'success');
 }
 
+sub get_logevent_table_name
+{
+  my ($shortname, $pre) = @_;
+
+  $shortname=~s/ /_/g;
+  return $shortname . ($pre ? '_PRE' : '_POST');
+}
+
+sub get_logevent_table_name_escaped
+{
+  my ($ctx, $shortname, $pre) = @_;
+  return $ctx->{'dbh'}->quote_identifier(get_logevent_table_name($shortname, $pre));
+}
+
+sub create_logevent_table
+{
+  my ($ctx, $shortname, $pre) = @_;
+
+  my $tabname = get_logevent_table_name_escaped($ctx, $shortname, $pre);
+  my $sql = qq{
+    create table if not exists $tabname
+    (ID INT NOT NULL PRIMARY KEY,
+    COUNT INT NOT NULL,
+    TYPE INT DEFAULT 0,
+    SOURCE INT NOT NULL,
+    START_TIME int,
+    GRACE_TIME int default 0,
+    CART_NUMBER INT UNSIGNED NOT NULL,
+    TIME_TYPE INT NOT NULL,
+    POST_POINT enum('N','Y') default 'N',
+    TRANS_TYPE INT NOT NULL,
+    START_POINT INT NOT NULL DEFAULT -1,
+    END_POINT INT NOT NULL DEFAULT -1,
+    FADEUP_POINT int default -1,
+    FADEUP_GAIN int default ?,
+    FADEDOWN_POINT int default -1,
+    FADEDOWN_GAIN int default ?,
+    SEGUE_START_POINT INT NOT NULL DEFAULT -1,
+    SEGUE_END_POINT INT NOT NULL DEFAULT -1,
+    SEGUE_GAIN int default ?,
+    DUCK_UP_GAIN int default 0,
+    DUCK_DOWN_GAIN int default 0,
+    COMMENT CHAR(255),
+    LABEL CHAR(64),
+    ORIGIN_USER char(255),
+    ORIGIN_DATETIME datetime,
+    EVENT_LENGTH int default -1,
+    LINK_EVENT_NAME char(64),
+    LINK_START_TIME int,
+    LINK_LENGTH int default 0,
+    LINK_START_SLOP int default 0,
+    LINK_END_SLOP int default 0,
+    LINK_ID int default -1,
+    LINK_EMBEDDED enum('N','Y') default 'N',
+    EXT_START_TIME time,
+    EXT_LENGTH int,
+    EXT_CART_NAME char(32),
+    EXT_DATA char(32),
+    EXT_EVENT_ID char(32),
+    EXT_ANNC_TYPE char(8),
+    index COUNT_IDX (COUNT),
+    index CART_NUMBER_IDX (CART_NUMBER),
+    index LABEL_IDX (LABEL));
+  };
+
+  my $sth = $ctx->{'dbh'}->prepare($sql)
+    or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr);
+
+  $sth->execute(RD_FADE_DEPTH, RD_FADE_DEPTH, RD_FADE_DEPTH)
+    or return (undef, 'ERROR', "Database Error: " . $sth->errstr);
+
+  $sth->finish();
+
+  return (1, 'OK', 'success');
+}
+
+sub drop_logevent_table
+{
+  my ($ctx, $shortname, $pre) = @_;
+
+  my $tabname = get_logevent_table_name_escaped($ctx, $shortname, $pre);
+  my $sql = qq{drop table $tabname;};
+
+  $ctx->{'dbh'}->do($sql)
+    or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr);
+
+  return (1, 'OK', 'success');
+}
+
 ###########################  TOKEN handling  ###########################
 
 sub get_token
@@ -1882,6 +1971,38 @@ sub create_musicpool_group
   return ($num, 'OK', 'success');
 }
 
+sub create_musicpool_event
+{
+  my ($ctx, $shortname, $groupname, $color) = @_;
+
+  my $sql = qq{insert into EVENTS (NAME, PROPERTIES, IMPORT_SOURCE, FIRST_TRANS_TYPE, DEFAULT_TRANS_TYPE, COLOR, SCHED_GROUP, TITLE_SEP) values (?, ?, ?, ?, ?, ?, ?, ?);};
+  my $sth = $ctx->{'dbh'}->prepare($sql)
+    or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr);
+
+  $sth->execute($shortname, 'SEGUE, Scheduler', 3, 1, 1, '#' . $color, $groupname, 25)    # TODO: make title seperartion configurable !?!?
+    or return (undef, 'ERROR', "Database Error: " . $sth->errstr);
+  $sth->finish();
+
+  $sql = qq{insert into EVENT_PERMS (EVENT_NAME, SERVICE_NAME) values (?, ?);};
+  $sth = $ctx->{'dbh'}->prepare($sql)
+    or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr);
+
+  $sth->execute($shortname, $ctx->{'config'}{'shows'}{'service'})
+    or return (undef, 'ERROR', "Database Error: " . $sth->errstr);
+  $sth->finish();
+
+  my ($cnt, $status, $errorstring) = create_logevent_table($ctx, $shortname, 1);
+  unless(defined $cnt) {
+    return (undef, $status, $errorstring);
+  }
+
+  ($cnt, $status, $errorstring) = create_logevent_table($ctx, $shortname, 0);
+  unless(defined $cnt) {
+    return (undef, $status, $errorstring);
+  }
+
+  return (1, 'OK', 'success');
+}
 
 sub is_musicpools_user
 {
diff --git a/utils/rhrd-pool b/utils/rhrd-pool
index 618c3e7..866afe6 100755
--- a/utils/rhrd-pool
+++ b/utils/rhrd-pool
@@ -106,7 +106,7 @@ sub add
   my $color = RHRD::utils::get_musicpool_color($num);
   print " * created group '" . $groupname . "' --> pool shortname / color: " . $shortname . " / " . $color . "\n";
 
-  ($result, $status, $errorstring) = RHRD::rddb::create_musicpool_event($ctx, $shortname, $groupname);
+  ($result, $status, $errorstring) = RHRD::rddb::create_musicpool_event($ctx, $shortname, $groupname, $color);
   unless(defined $result) {
     print STDERR $status . ": " . $errorstring . "\n";
     return 1;
-- 
cgit v0.10.2