Add table migrations

This commit is contained in:
Brandon Scott 2022-11-16 20:07:10 -06:00
parent ccba5da34b
commit 2abfefe2f9
9 changed files with 309 additions and 0 deletions

View File

@ -19,6 +19,7 @@ return new class extends Migration
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->boolean('admin')->default(0);
$table->rememberToken();
$table->timestamps();
});

View File

@ -0,0 +1,37 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateProgramsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('programs', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('description');
$table->boolean('active')->default(1);
$table->unsignedInteger('major_version')->default(1);
$table->unsignedInteger('minor_version')->default(0);
$table->unsignedInteger('revision_version')->default(0);
$table->timestamp('last_updated')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('programs');
}
}

View File

@ -0,0 +1,43 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSessionsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('sessions', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->boolean('terminated');
$table->foreignId('user_id')
->constrained('users')
->cascadeOnUpdate()
->cascadeOnDelete();
$table->foreignId('program_id')
->constrained('programs')
->cascadeOnUpdate()
->cascadeOnDelete();
$table->timestamp('creation_time')->nullable();
$table->timestamp('last_ping_time')->nullable();
$table->ipAddress('ip');
$table->string('os_username')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('sessions');
}
}

View File

@ -0,0 +1,46 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateActivityLogsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('activity_logs', function (Blueprint $table) {
$table->id();
$table->foreignUuid('session_id')
->nullable()
->constrained('sessions');
$table->foreignId('user_id')
->nullable()
->constrained('users')
->cascadeOnUpdate()
->cascadeOnDelete();
$table->foreignId('program_id')
->nullable()
->constrained('programs')
->cascadeOnUpdate()
->cascadeOnDelete();
$table->ipAddress('ip');
$table->timestamp('activity_time')->nullable();
$table->string('action', 50);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('activity_logs');
}
}

View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateGroupsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('groups', function (Blueprint $table) {
$table->id();
$table->unsignedInteger('program_limit');
$table->unsignedInteger('update_limit');
$table->unsignedInteger('support_ticket_limit');
$table->string('name', 100);
$table->text('description');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('groups');
}
}

View File

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateIpBansTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('ip_bans', function (Blueprint $table) {
$table->id();
$table->ipAddress('ip');
$table->timestamp('creation_time')->nullable();
$table->timestamp('expiration_time')->nullable();
$table->string('reason')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('ip_bans');
}
}

View File

@ -0,0 +1,42 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateLinkLogsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('link_logs', function (Blueprint $table) {
$table->id();
$table->foreignUuid('session_id')
->constrained('sessions');
$table->foreignId('user_id')
->constrained('users')
->cascadeOnUpdate()
->cascadeOnDelete();
$table->foreignId('program_id')
->constrained('programs')
->cascadeOnUpdate()
->cascadeOnDelete();
$table->timestamp('server_time')->nullable();
$table->string('url');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('link_logs');
}
}

View File

@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePermissionsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('permissions', function (Blueprint $table) {
$table->id();
$table->unsignedInteger('user_id');
$table->unsignedInteger('program_id');
$table->timestamp('expiration_time')->nullable();
$table->unsignedInteger('max_session_count')->default(1);
$table->unique(['user_id', 'program_id'], 'user_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('permissions');
}
}

View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSettingsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('settings', function (Blueprint $table) {
$table->id();
$table->string('display_name', 100);
$table->string('display_desc');
$table->string('name', 100)->unique('name');
$table->string('value');
$table->char('data_type', 10)->default('string');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('settings');
}
}