<?php
namespace WorkbloomERP\Module\v0\Auth\Factories;

use WorkbloomERP\Services\DBService;
use WorkbloomERP\Module\v0\Auth\Services\AuthService;
use WorkbloomERP\Module\v0\Empresa\Repos\EmpresaRepo;
use WorkbloomERP\Module\v0\Usuario\Repos\UsuarioRepo;
use WorkbloomERP\Module\v0\Usuario\Repos\UsuarioSessionRepo;
use WorkbloomERP\Module\v0\Usuario\Repos\UsuarioEmpresaRepo;

class ServiceFactory {
    public static function makeAuthService() {
        $db = new DBService();
        return new AuthService(
            db: $db,
            usuarioRepo: new UsuarioRepo(db: $db),
            empresaRepo: new EmpresaRepo(db: $db),
            usuarioSessionRepo: new UsuarioSessionRepo(db: $db),
            usuarioEmpresaRepo: new UsuarioEmpresaRepo(db: $db),
        );
    }

    public static function makeUsuarioSessionRepo() {
        $db = new DBService();
        return new UsuarioSessionRepo(
            db: $db
        );
    }
}