99 lines
4.0 KiB
PHP
99 lines
4.0 KiB
PHP
<?php
|
||
require __DIR__ . '/vendor/autoload.php';
|
||
use App\Kernel;
|
||
use Symfony\Component\Dotenv\Dotenv;
|
||
|
||
(new Dotenv())->bootEnv(__DIR__ . '/.env');
|
||
$kernel = new Kernel($_SERVER['APP_ENV'], (bool)$_SERVER['APP_DEBUG']);
|
||
$kernel->boot();
|
||
$container = $kernel->getContainer();
|
||
|
||
$em = $container->get('doctrine')->getManager();
|
||
$doctorRepo = $em->getRepository(\App\Doctor\Entity\Doctor::class);
|
||
$clinicRepo = $em->getRepository(\App\Clinic\Entity\Clinic::class);
|
||
|
||
$plainPassword = 'Test1234';
|
||
$passwordHash = password_hash($plainPassword, PASSWORD_BCRYPT, ['cost' => 13]);
|
||
|
||
function makeUser(string $mobile, array $roles, $em, string $hash): \App\Auth\Entity\User {
|
||
$u = new \App\Auth\Entity\User($mobile);
|
||
$u->setRoles($roles);
|
||
$u->setPasswordHash($hash);
|
||
$em->persist($u);
|
||
return $u;
|
||
}
|
||
|
||
echo "=== ساخت کاربران تستی ===\n\n";
|
||
|
||
// ── ۱) دکتر در چند کلینیک ──────────────────────────────────────────
|
||
$u1 = makeUser('09100000011', ['ROLE_DOCTOR'], $em, $passwordHash);
|
||
$em->flush();
|
||
|
||
$d1 = new \App\Doctor\Entity\Doctor($u1, 'دکتر آرمان رضایی');
|
||
$d1->setDegree('specialist')->setInfo('متخصص قلب و عروق');
|
||
$em->persist($d1);
|
||
$em->flush();
|
||
|
||
$clinic1 = $clinicRepo->find(1);
|
||
$clinic2 = $clinicRepo->find(2);
|
||
if ($clinic1) $clinic1->getDoctors()->add($d1);
|
||
if ($clinic2) $clinic2->getDoctors()->add($d1);
|
||
$em->flush();
|
||
|
||
echo "✅ کاربر ۱: دکتر در چند کلینیک\n";
|
||
echo " موبایل: 09100000011 | پسورد: Test1234\n";
|
||
echo " نقش: ROLE_DOCTOR\n";
|
||
echo " contexts: مطب شخصی + " . ($clinic1?->getName() ?? 'کلینیک ۱') . " + " . ($clinic2?->getName() ?? 'کلینیک ۲') . "\n\n";
|
||
|
||
// ── ۲) صاحب کلینیک ─────────────────────────────────────────────────
|
||
$u2 = makeUser('09100000022', ['ROLE_CLINIC'], $em, $passwordHash);
|
||
$em->flush();
|
||
|
||
$c2 = new \App\Clinic\Entity\Clinic($u2);
|
||
$c2->setName('کلینیک تست پگاه');
|
||
$em->persist($c2);
|
||
$em->flush();
|
||
|
||
echo "✅ کاربر ۲: صاحب کلینیک\n";
|
||
echo " موبایل: 09100000022 | پسورد: Test1234\n";
|
||
echo " نقش: ROLE_CLINIC\n";
|
||
echo " contexts: کلینیک تست پگاه (uuid=" . $c2->getUuid() . ")\n\n";
|
||
|
||
// ── ۳) منشی ────────────────────────────────────────────────────────
|
||
$u3 = makeUser('09100000033', ['ROLE_SECRETARY'], $em, $passwordHash);
|
||
$em->flush();
|
||
|
||
$doctor182 = $doctorRepo->find(182);
|
||
if ($doctor182) {
|
||
$sec = new \App\Secretary\Entity\DoctorSecretary($doctor182, $u3);
|
||
$sec->setActive(true);
|
||
$em->persist($sec);
|
||
$em->flush();
|
||
echo "✅ کاربر ۳: منشی\n";
|
||
echo " موبایل: 09100000033 | پسورد: Test1234\n";
|
||
echo " نقش: ROLE_SECRETARY\n";
|
||
echo " contexts: مطب " . $doctor182->getName() . "\n\n";
|
||
} else {
|
||
echo "⚠️ دکتر ۱۸۲ یافت نشد\n\n";
|
||
}
|
||
|
||
// ── ۴) دکتر + صاحب کلینیک ──────────────────────────────────────────
|
||
$u4 = makeUser('09100000044', ['ROLE_DOCTOR', 'ROLE_CLINIC'], $em, $passwordHash);
|
||
$em->flush();
|
||
|
||
$d4 = new \App\Doctor\Entity\Doctor($u4, 'دکتر سامان علوی');
|
||
$d4->setDegree('specialist')->setInfo('متخصص ارتوپدی');
|
||
$em->persist($d4);
|
||
|
||
$c4 = new \App\Clinic\Entity\Clinic($u4);
|
||
$c4->setName('کلینیک تخصصی علوی');
|
||
$em->persist($c4);
|
||
$em->flush();
|
||
|
||
echo "✅ کاربر ۴: دکتر + صاحب کلینیک\n";
|
||
echo " موبایل: 09100000044 | پسورد: Test1234\n";
|
||
echo " نقش: ROLE_DOCTOR + ROLE_CLINIC\n";
|
||
echo " contexts: مطب شخصی دکتر سامان + کلینیک تخصصی علوی (uuid=" . $c4->getUuid() . ")\n\n";
|
||
|
||
echo "=== تمام ===\n";
|