Blob Blame History Raw
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
package LufiDB;
use Mojolicious;
use FindBin qw($Bin);
use File::Spec::Functions;

BEGIN {
    my $m = Mojolicious->new;
    our $config = $m->plugin('Config' =>
        {
            file    => catfile($Bin, '..' ,'lufi.conf'),
            default => {
                db_path => 'lufi.db'
            }
        }
    );
}

# Create database
use ORLite {
      file    => $config->{db_path},
      unicode => 1,
      create  => sub {
          my $dbh = shift;
          $dbh->do(
              'CREATE TABLE files (
               short                 TEXT PRIMARY KEY,
               deleted               INTEGER,
               mediatype             TEXT,
               filename              TEXT,
               filesize              INTEGER,
               counter               INTEGER,
               delete_at_first_view  INTEGER,
               delete_at_day         INTEGER,
               created_at            INTEGER,
               created_by            TEXT,
               last_access_at        INTEGER,
               mod_token             TEXT,
               nbslices              INTEGER,
               complete              INTEGER)'
          );
          $dbh->do(
              'CREATE TABLE slices (
               short                 TEXT,
               j                     INTEGER,
               path                  TEXT,
               FOREIGN KEY (short) REFERENCES files(short))'
          );
          $dbh->do(
              'CREATE INDEX slices_idx ON slices(short)'
          );
          return 1;
     }
};

1;