wire auth api

This commit is contained in:
Yisroel Baum 2026-05-23 23:21:07 +03:00
parent 9e70fae38d
commit eff7c5c281
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
12 changed files with 137 additions and 19 deletions

View file

@ -0,0 +1,22 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('email')->unique();
$table->string('password_hash');
});
}
public function down(): void
{
Schema::dropIfExists('users');
}
};

View file

@ -0,0 +1,23 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('sessions', function (Blueprint $table) {
$table->string('token')->primary();
$table->foreignId('user_id')->constrained('users');
$table->dateTime('created_at');
$table->dateTime('expires_at');
});
}
public function down(): void
{
Schema::dropIfExists('sessions');
}
};

View file

@ -8,5 +8,8 @@ class DatabaseSeeder extends Seeder
{
public function run(): void
{
$this->call([
UserSeeder::class,
]);
}
}

View file

@ -0,0 +1,22 @@
<?php
namespace Database\Seeders;
use App\Auth\PasswordHasher;
use App\Shared\ValueObject\EmailAddress;
use App\User\CreateUserDto;
use App\User\UserRepository;
use Illuminate\Database\Seeder;
class UserSeeder extends Seeder
{
public function run(): void
{
$userRepository = app(UserRepository::class);
$passwordHasher = app(PasswordHasher::class);
$userRepository->create(new CreateUserDto(
email: new EmailAddress('test@example.com'),
passwordHash: $passwordHasher->hash('password123!@#'),
));
}
}