CompanyModel.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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, :cnpj, :flag) RETURNING company_id');
  17. $stmt->execute([
  18. 'name' => $name,
  19. 'cnpj' => $cnpj,
  20. 'flag' => $flag
  21. ]);
  22. return (int)$stmt->fetchColumn();
  23. }
  24. public function createRole(int $companyId, string $roleName, array $permission = [], string $flag = 'a'): int
  25. {
  26. $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');
  27. $stmt->execute([
  28. 'company_id' => $companyId,
  29. 'role_name' => $roleName,
  30. 'permission' => json_encode($permission, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
  31. 'flag' => $flag,
  32. ]);
  33. return (int)$stmt->fetchColumn();
  34. }
  35. }