mirror of
https://github.com/AnimeThemes/animethemes-server.git
synced 2026-07-11 01:24:46 +02:00
feat: WIP submission panel & submission stages (#1018)
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Database\Factories\User\Submission;
|
||||
|
||||
use App\Models\User\Submission;
|
||||
use App\Models\User\Submission\SubmissionStage;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
/**
|
||||
* @method SubmissionStage createOne($attributes = [])
|
||||
* @method SubmissionStage makeOne($attributes = [])
|
||||
*
|
||||
* @extends Factory<SubmissionStage>
|
||||
*/
|
||||
class SubmissionStageFactory extends Factory
|
||||
{
|
||||
/**
|
||||
* The name of the factory's corresponding model.
|
||||
*
|
||||
* @var class-string<SubmissionStage>
|
||||
*/
|
||||
protected $model = SubmissionStage::class;
|
||||
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function definition(): array
|
||||
{
|
||||
return [
|
||||
SubmissionStage::ATTRIBUTE_SUBMISSION => Submission::factory(),
|
||||
SubmissionStage::ATTRIBUTE_MODERATOR_NOTES => fake()->text(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Database\Factories\User\Submission;
|
||||
|
||||
use App\Enums\Models\User\ApprovableStatus;
|
||||
use App\Enums\Models\User\SubmissionActionType;
|
||||
use App\Models\User\Submission;
|
||||
use App\Models\User\Submission\SubmissionStep;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
/**
|
||||
* @method SubmissionStep createOne($attributes = [])
|
||||
* @method SubmissionStep makeOne($attributes = [])
|
||||
*
|
||||
* @extends Factory<SubmissionStep>
|
||||
*/
|
||||
class SubmissionStepFactory extends Factory
|
||||
{
|
||||
/**
|
||||
* The name of the factory's corresponding model.
|
||||
*
|
||||
* @var class-string<SubmissionStep>
|
||||
*/
|
||||
protected $model = SubmissionStep::class;
|
||||
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function definition(): array
|
||||
{
|
||||
$action = Arr::random(SubmissionActionType::cases());
|
||||
$status = Arr::random(ApprovableStatus::cases());
|
||||
|
||||
return [
|
||||
SubmissionStep::ATTRIBUTE_ACTION => $action->value,
|
||||
SubmissionStep::ATTRIBUTE_STATUS => $status->value,
|
||||
SubmissionStep::ATTRIBUTE_SUBMISSION => Submission::factory(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace Database\Factories\User;
|
||||
|
||||
use App\Enums\Models\User\ApprovableStatus;
|
||||
use App\Enums\Models\User\SubmissionStatus;
|
||||
use App\Models\User\Submission;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
use Illuminate\Support\Arr;
|
||||
@@ -31,7 +31,7 @@ class SubmissionFactory extends Factory
|
||||
*/
|
||||
public function definition(): array
|
||||
{
|
||||
$status = Arr::random(ApprovableStatus::cases());
|
||||
$status = Arr::random(SubmissionStatus::cases());
|
||||
|
||||
return [
|
||||
Submission::ATTRIBUTE_MODERATOR_NOTES => fake()->text(),
|
||||
|
||||
+17
-15
@@ -4,7 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
use App\Models\Auth\User;
|
||||
use App\Models\User\Submission;
|
||||
use App\Models\User\Submission\SubmissionStep;
|
||||
use App\Models\User\Submission\SubmissionStage;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
@@ -20,7 +20,8 @@ return new class extends Migration
|
||||
Schema::create(Submission::TABLE, function (Blueprint $table) {
|
||||
$table->id(Submission::ATTRIBUTE_ID);
|
||||
|
||||
$table->longText(Submission::ATTRIBUTE_NOTES)->nullable();
|
||||
$table->nullableUuidMorphs(Submission::RELATION_ACTIONABLE);
|
||||
$table->string(Submission::ATTRIBUTE_TYPE);
|
||||
$table->longText(Submission::ATTRIBUTE_MODERATOR_NOTES)->nullable();
|
||||
|
||||
$table->integer(Submission::ATTRIBUTE_STATUS)->nullable();
|
||||
@@ -31,6 +32,7 @@ return new class extends Migration
|
||||
$table->unsignedBigInteger(Submission::ATTRIBUTE_MODERATOR)->nullable();
|
||||
$table->foreign(Submission::ATTRIBUTE_MODERATOR)->references(User::ATTRIBUTE_ID)->on(User::TABLE)->nullOnDelete();
|
||||
|
||||
$table->boolean(Submission::ATTRIBUTE_LOCKED)->default(false);
|
||||
$table->timestamp(Submission::ATTRIBUTE_FINISHED_AT, 6)->nullable();
|
||||
$table->timestamps(6);
|
||||
|
||||
@@ -38,22 +40,22 @@ return new class extends Migration
|
||||
});
|
||||
}
|
||||
|
||||
if (! Schema::hasTable(SubmissionStep::TABLE)) {
|
||||
Schema::create(SubmissionStep::TABLE, function (Blueprint $table) {
|
||||
$table->id(SubmissionStep::ATTRIBUTE_ID);
|
||||
if (! Schema::hasTable(SubmissionStage::TABLE)) {
|
||||
Schema::create(SubmissionStage::TABLE, function (Blueprint $table) {
|
||||
$table->id(SubmissionStage::ATTRIBUTE_ID);
|
||||
|
||||
$table->integer(SubmissionStep::ATTRIBUTE_ACTION)->nullable();
|
||||
$table->nullableMorphs(SubmissionStep::RELATION_ACTIONABLE);
|
||||
$table->nullableMorphs(SubmissionStep::RELATION_TARGET);
|
||||
$table->string(SubmissionStep::ATTRIBUTE_PIVOT)->nullable();
|
||||
$table->integer(SubmissionStage::ATTRIBUTE_STAGE);
|
||||
|
||||
$table->json(SubmissionStep::ATTRIBUTE_FIELDS)->nullable();
|
||||
$table->integer(SubmissionStep::ATTRIBUTE_STATUS)->nullable();
|
||||
$table->json(SubmissionStage::ATTRIBUTE_FIELDS)->nullable();
|
||||
$table->longText(SubmissionStage::ATTRIBUTE_NOTES)->nullable();
|
||||
$table->longText(SubmissionStage::ATTRIBUTE_MODERATOR_NOTES)->nullable();
|
||||
|
||||
$table->unsignedBigInteger(SubmissionStep::ATTRIBUTE_SUBMISSION);
|
||||
$table->foreign(SubmissionStep::ATTRIBUTE_SUBMISSION)->references(Submission::ATTRIBUTE_ID)->on(Submission::TABLE)->cascadeOnDelete();
|
||||
$table->unsignedBigInteger(SubmissionStage::ATTRIBUTE_SUBMISSION);
|
||||
$table->foreign(SubmissionStage::ATTRIBUTE_SUBMISSION)->references(Submission::ATTRIBUTE_ID)->on(Submission::TABLE)->cascadeOnDelete();
|
||||
|
||||
$table->unsignedBigInteger(SubmissionStage::ATTRIBUTE_MODERATOR)->nullable();
|
||||
$table->foreign(SubmissionStage::ATTRIBUTE_MODERATOR)->references(User::ATTRIBUTE_ID)->on(User::TABLE)->nullOnDelete();
|
||||
|
||||
$table->timestamp(SubmissionStep::ATTRIBUTE_FINISHED_AT, 6)->nullable();
|
||||
$table->timestamps(6);
|
||||
});
|
||||
}
|
||||
@@ -64,7 +66,7 @@ return new class extends Migration
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists(SubmissionStep::TABLE);
|
||||
Schema::dropIfExists(SubmissionStage::TABLE);
|
||||
Schema::dropIfExists(Submission::TABLE);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user