diff --git a/app/Http/Controllers/API/v1/WalletController.php b/app/Http/Controllers/API/v1/WalletController.php index 6c33f95..9617360 100644 --- a/app/Http/Controllers/API/v1/WalletController.php +++ b/app/Http/Controllers/API/v1/WalletController.php @@ -120,7 +120,12 @@ public function store(Request $request): JsonResponse } $wallet->markAsSynced(); } catch (\Exception $e) { - return $this->failure('Wallet already exists', 400); + logger()->error('Failed to create wallet', [ + 'user_id' => $user->id, + 'error' => $e->getMessage(), + 'trace' => $e->getTraceAsString(), + ]); + return $this->failure('Failed to create wallet', 400, [$e->getMessage()]); } return $this->success($wallet, 'Wallet created successfully', 201); diff --git a/app/Traits/Syncable.php b/app/Traits/Syncable.php index f6930ef..5ffaf94 100644 --- a/app/Traits/Syncable.php +++ b/app/Traits/Syncable.php @@ -12,6 +12,7 @@ public static function bootSyncable(): void static::created(function ($model) { $model->syncState()->create([ 'last_synced_at' => now(), + 'user_id' => auth()->id(), ]); }); } diff --git a/database/migrations/2025_04_08_194334_create_model_sync_states_table.php b/database/migrations/2025_04_08_194334_create_model_sync_states_table.php index b15f43a..a98c365 100644 --- a/database/migrations/2025_04_08_194334_create_model_sync_states_table.php +++ b/database/migrations/2025_04_08_194334_create_model_sync_states_table.php @@ -17,6 +17,8 @@ public function up(): void $table->string('source')->nullable(); $table->uuid('client_generated_id')->index()->nullable(); $table->timestamp('last_synced_at'); + $table->unsignedBigInteger('user_id'); + $table->unique(['syncable_type', 'client_generated_id', 'user_id'], 'syncable_user_unique'); $table->timestamps(); }); } diff --git a/database/seeders/TransactionSeeder.php b/database/seeders/TransactionSeeder.php index 7a12b1c..99c0e7b 100644 --- a/database/seeders/TransactionSeeder.php +++ b/database/seeders/TransactionSeeder.php @@ -12,6 +12,7 @@ public function run(): void { foreach (range(1, 10) as $index) { $user = User::find($index); + auth()->login($user); if (! $user) { continue; } diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php index 6a425a5..d6771b0 100644 --- a/database/seeders/UserSeeder.php +++ b/database/seeders/UserSeeder.php @@ -19,6 +19,8 @@ public function run(): void 'username' => "user{$index}", ]); + auth()->login($user); + Party::factory(5)->create([ 'user_id' => $user->id, ]);