RFC-TIMETABLE v0.2 Session 1 — Artist Timetable foundation #15

Merged
bert.hausmans merged 14 commits from feat/timetable-session-1 into main 2026-05-08 20:23:43 +02:00
2 changed files with 0 additions and 80 deletions
Showing only changes of commit c31f2ba784 - Show all commits

View File

@@ -1,43 +0,0 @@
<?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
{
public function up(): void
{
Schema::create('artists', function (Blueprint $table) {
$table->ulid('id')->primary();
$table->foreignUlid('event_id')->constrained()->cascadeOnDelete();
$table->string('name');
$table->enum('booking_status', ['concept', 'requested', 'option', 'confirmed', 'contracted', 'cancelled'])->default('concept');
$table->tinyInteger('star_rating')->default(1);
$table->foreignUlid('project_leader_id')->nullable()->constrained('users')->nullOnDelete();
$table->boolean('milestone_offer_in')->default(false);
$table->boolean('milestone_offer_agreed')->default(false);
$table->boolean('milestone_confirmed')->default(false);
$table->boolean('milestone_announced')->default(false);
$table->boolean('milestone_schedule_confirmed')->default(false);
$table->boolean('milestone_itinerary_sent')->default(false);
$table->boolean('milestone_advance_sent')->default(false);
$table->boolean('milestone_advance_received')->default(false);
$table->datetime('advance_open_from')->nullable();
$table->datetime('advance_open_to')->nullable();
$table->boolean('show_advance_share_page')->default(true);
$table->char('portal_token', 26)->unique();
$table->timestamps();
$table->softDeletes();
$table->index('event_id');
});
}
public function down(): void
{
Schema::dropIfExists('artists');
}
};

View File

@@ -1,37 +0,0 @@
<?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
{
public function up(): void
{
Schema::create('advance_sections', function (Blueprint $table) {
$table->ulid('id')->primary();
$table->foreignUlid('artist_id')->constrained()->cascadeOnDelete();
$table->string('name');
$table->enum('type', ['guest_list', 'contacts', 'production', 'custom']);
$table->boolean('is_open')->default(false);
$table->datetime('open_from')->nullable();
$table->datetime('open_to')->nullable();
$table->unsignedInteger('sort_order')->default(0);
$table->enum('submission_status', ['open', 'pending', 'submitted', 'approved', 'declined'])->default('open');
$table->timestamp('last_submitted_at')->nullable();
$table->string('last_submitted_by')->nullable();
$table->json('submission_diff')->nullable();
$table->timestamps();
$table->index(['artist_id', 'is_open']);
$table->index(['artist_id', 'submission_status']);
});
}
public function down(): void
{
Schema::dropIfExists('advance_sections');
}
};