From bc535c8c0be1d101e89157d464d40e9c21b972f8 Mon Sep 17 00:00:00 2001 From: myrmidex Date: Sun, 26 Apr 2026 02:48:39 +0200 Subject: [PATCH] 4 - Add pages and page_links migrations with PageStatusEnum --- app/Enums/PageStatusEnum.php | 12 +++++++ .../2026_04_25_234157_create_pages_table.php | 34 +++++++++++++++++++ ...6_04_26_001957_create_page_links_table.php | 27 +++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 app/Enums/PageStatusEnum.php create mode 100644 database/migrations/2026_04_25_234157_create_pages_table.php create mode 100644 database/migrations/2026_04_26_001957_create_page_links_table.php diff --git a/app/Enums/PageStatusEnum.php b/app/Enums/PageStatusEnum.php new file mode 100644 index 0000000..4f73260 --- /dev/null +++ b/app/Enums/PageStatusEnum.php @@ -0,0 +1,12 @@ +id(); + $table->text('url')->unique(); + $table->string('status')->default(PageStatusEnum::Discovered->value)->index(); + $table->string('title')->nullable(); + $table->foreignId('instance_id') + ->nullable() + ->constrained('fedi_discover_instances') + ->nullOnDelete(); + $table->timestampTz('posted_at')->nullable(); + $table->timestampTz('fetched_at')->nullable(); + $table->timestampTz('failed_at')->nullable(); + $table->timestampsTz(); + }); + } + + public function down(): void + { + Schema::dropIfExists('pages'); + } +}; diff --git a/database/migrations/2026_04_26_001957_create_page_links_table.php b/database/migrations/2026_04_26_001957_create_page_links_table.php new file mode 100644 index 0000000..296b994 --- /dev/null +++ b/database/migrations/2026_04_26_001957_create_page_links_table.php @@ -0,0 +1,27 @@ +id(); + $table->foreignId('source_page_id')->constrained('pages')->cascadeOnDelete(); + $table->foreignId('target_page_id')->constrained('pages')->cascadeOnDelete(); + $table->timestampsTz(); + + $table->unique(['source_page_id', 'target_page_id']); + }); + } + + public function down(): void + { + Schema::dropIfExists('page_links'); + } +};