From 536269cbb5b3c81b193897e5f3f311866e3329e0 Mon Sep 17 00:00:00 2001 From: Doar Mihai Date: Sun, 28 Jun 2026 15:47:09 +0300 Subject: [PATCH] feat: add nerve and gym_sessions migrations --- ...8_000001_add_nerve_to_characters_table.php | 24 +++++++++++++++++ ..._000002_add_nerve_cost_to_crimes_table.php | 22 +++++++++++++++ ...add_nerve_cost_to_crime_attempts_table.php | 22 +++++++++++++++ ...06_28_000004_create_gym_sessions_table.php | 27 +++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 database/migrations/2026_06_28_000001_add_nerve_to_characters_table.php create mode 100644 database/migrations/2026_06_28_000002_add_nerve_cost_to_crimes_table.php create mode 100644 database/migrations/2026_06_28_000003_add_nerve_cost_to_crime_attempts_table.php create mode 100644 database/migrations/2026_06_28_000004_create_gym_sessions_table.php diff --git a/database/migrations/2026_06_28_000001_add_nerve_to_characters_table.php b/database/migrations/2026_06_28_000001_add_nerve_to_characters_table.php new file mode 100644 index 0000000..99f8e72 --- /dev/null +++ b/database/migrations/2026_06_28_000001_add_nerve_to_characters_table.php @@ -0,0 +1,24 @@ +integer('nerve')->default(100)->after('max_energy'); + $table->integer('max_nerve')->default(100)->after('nerve'); + $table->timestamp('nerve_regen_at')->nullable()->after('max_nerve'); + }); + } + + public function down(): void + { + Schema::table('characters', function (Blueprint $table) { + $table->dropColumn(['nerve', 'max_nerve', 'nerve_regen_at']); + }); + } +}; \ No newline at end of file diff --git a/database/migrations/2026_06_28_000002_add_nerve_cost_to_crimes_table.php b/database/migrations/2026_06_28_000002_add_nerve_cost_to_crimes_table.php new file mode 100644 index 0000000..1a64997 --- /dev/null +++ b/database/migrations/2026_06_28_000002_add_nerve_cost_to_crimes_table.php @@ -0,0 +1,22 @@ +integer('nerve_cost')->default(1)->after('energy_cost'); + }); + } + + public function down(): void + { + Schema::table('crimes', function (Blueprint $table) { + $table->dropColumn('nerve_cost'); + }); + } +}; \ No newline at end of file diff --git a/database/migrations/2026_06_28_000003_add_nerve_cost_to_crime_attempts_table.php b/database/migrations/2026_06_28_000003_add_nerve_cost_to_crime_attempts_table.php new file mode 100644 index 0000000..ee9dc5f --- /dev/null +++ b/database/migrations/2026_06_28_000003_add_nerve_cost_to_crime_attempts_table.php @@ -0,0 +1,22 @@ +integer('nerve_cost')->default(1)->after('experience_gained'); + }); + } + + public function down(): void + { + Schema::table('crime_attempts', function (Blueprint $table) { + $table->dropColumn('nerve_cost'); + }); + } +}; \ No newline at end of file diff --git a/database/migrations/2026_06_28_000004_create_gym_sessions_table.php b/database/migrations/2026_06_28_000004_create_gym_sessions_table.php new file mode 100644 index 0000000..6d27089 --- /dev/null +++ b/database/migrations/2026_06_28_000004_create_gym_sessions_table.php @@ -0,0 +1,27 @@ +id(); + $table->foreignId('character_id')->constrained()->cascadeOnDelete(); + $table->enum('stat', ['strength', 'defense', 'speed', 'dexterity']); + $table->integer('sessions_today')->default(0); + $table->date('reset_date'); + $table->timestamps(); + + $table->unique(['character_id', 'stat']); + }); + } + + public function down(): void + { + Schema::dropIfExists('gym_sessions'); + } +}; \ No newline at end of file