CompanyModel.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace Models;
  3. class CompanyModel
  4. {
  5. private \PDO $pdo;
  6. public function __construct()
  7. {
  8. if (isset($GLOBALS['pdo']) && $GLOBALS['pdo'] instanceof \PDO) {
  9. $this->pdo = $GLOBALS['pdo'];
  10. } else {
  11. throw new \RuntimeException('Global PDO connection not initialized');
  12. }
  13. }
  14. public function createCompany(string $name, string $cnpj, string $flag = 'a'): int
  15. {
  16. $stmt = $this->pdo->prepare('INSERT INTO "company" (company_name, company_cnpj, company_flag) VALUES (:name, :flag) RETURNING company_id');
  17. $stmt->execute(['name' => $name, 'flag' => $flag]);
  18. return (int)$stmt->fetchColumn();
  19. }
  20. public function createRole(int $companyId, string $roleName, array $permission = [], string $flag = 'a'): int
  21. {
  22. $stmt = $this->pdo->prepare('INSERT INTO "role" (company_id, role_name, role_permission, role_flag) VALUES (:company_id, :role_name, :permission::jsonb, :flag) RETURNING role_id');
  23. $stmt->execute([
  24. 'company_id' => $companyId,
  25. 'role_name' => $roleName,
  26. 'permission' => json_encode($permission, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
  27. 'flag' => $flag,
  28. ]);
  29. return (int)$stmt->fetchColumn();
  30. }
  31. }