#!/usr/bin/env php
<?php

use App\Auth\PasswordHasher;
use App\Shared\ValueObject\EmailAddress;
use App\User\CreateUserDto;
use App\User\UserRepository;

(static function (): void {
    $root = dirname(__DIR__);

    require $root . '/vendor/autoload.php';

    $dotenv = Dotenv\Dotenv::createImmutable($root);
    $dotenv->safeLoad();

    require $root . '/config/database.php';

    $container = require $root . '/config/container.php';

    $userRepo = $container->get(UserRepository::class);
    $hasher = $container->get(PasswordHasher::class);

    $seedEmail = 'admin@rabbigerzi.test';
    $seedPassword = 'password';

    $email = new EmailAddress($seedEmail);

    if ($userRepo->findByEmail($email) !== null) {
        echo "Seed user {$seedEmail} already exists, skipping.\n";
        exit(0);
    }

    $userRepo->create(new CreateUserDto(
        email: $email,
        passwordHash: $hasher->hash($seedPassword),
    ));

    echo "Created seed user {$seedEmail} / {$seedPassword}\n";
})();
