id(); $table->uuid('uuid')->unique(); $table->string('title'); $table->text('description')->nullable(); $table->string('organizer'); $table->string('location', 500); $table->date('start_date'); $table->date('end_date'); $table->dateTime('checkin_start_at')->nullable(); $table->dateTime('checkin_end_at')->nullable(); $table->dateTime('ecert_download_start_at')->nullable(); $table->dateTime('ecert_download_end_at')->nullable(); $table->enum('status', ['draft', 'published', 'closed'])->default('draft'); $table->boolean('allow_walk_in')->default(true); $table->enum('default_staff_session', ['pagi', 'petang', 'full_day'])->nullable(); $table->enum('default_external_session', ['pagi', 'petang', 'full_day'])->nullable(); $table->foreignId('created_by')->constrained('users')->cascadeOnDelete(); $table->timestamps(); $table->index('status'); $table->index('uuid'); }); } public function down(): void { Schema::dropIfExists('programs'); } };