Added basic models and factories

This commit is contained in:
Constantin Graf
2024-01-21 18:35:29 +01:00
parent 28f7b43577
commit 6377df1f44
29 changed files with 1476 additions and 116 deletions

View File

@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('clients', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('name', 255);
$table->uuid('organization_id');
$table->foreign('organization_id')
->references('id')
->on('teams')
->cascadeOnUpdate()
->restrictOnDelete();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('clients');
}
};

View File

@@ -0,0 +1,43 @@
<?php
declare(strict_types=1);
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('projects', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('name', 255);
$table->string('color', 16);
$table->uuid('client_id')->nullable();
$table->foreign('client_id')
->references('id')
->on('clients')
->cascadeOnUpdate()
->restrictOnDelete();
$table->uuid('organization_id');
$table->foreign('organization_id')
->references('id')
->on('teams')
->cascadeOnUpdate()
->restrictOnDelete();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('projects');
}
};

View File

@@ -0,0 +1,42 @@
<?php
declare(strict_types=1);
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('tasks', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('name', 255);
$table->uuid('project_id');
$table->foreign('project_id')
->references('id')
->on('projects')
->cascadeOnUpdate()
->restrictOnDelete();
$table->uuid('organization_id');
$table->foreign('organization_id')
->references('id')
->on('teams')
->cascadeOnUpdate()
->restrictOnDelete();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('tasks');
}
};

View File

@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('tags', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('name', 255);
$table->uuid('organization_id');
$table->foreign('organization_id')
->references('id')
->on('teams')
->cascadeOnUpdate()
->restrictOnDelete();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('tags');
}
};

View File

@@ -0,0 +1,58 @@
<?php
declare(strict_types=1);
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('time_entries', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('description', 255);
$table->dateTime('start');
$table->dateTime('end')->nullable();
$table->boolean('billable')->default(false);
$table->uuid('user_id');
$table->foreign('user_id')
->references('id')
->on('users')
->cascadeOnUpdate()
->restrictOnDelete();
$table->uuid('organization_id');
$table->foreign('organization_id')
->references('id')
->on('teams')
->cascadeOnUpdate()
->restrictOnDelete();
$table->uuid('project_id')->nullable();
$table->foreign('project_id')
->references('id')
->on('projects')
->cascadeOnUpdate()
->restrictOnDelete();
$table->uuid('task_id')->nullable();
$table->foreign('task_id')
->references('id')
->on('tasks')
->cascadeOnUpdate()
->restrictOnDelete();
$table->jsonb('tags')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('time_entries');
}
};