CategoryModel.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace Models;
  3. class CategoryModel
  4. {
  5. private \PDO $pdo;
  6. public function __construct()
  7. {
  8. $dbFile = $_ENV['DB_FILE'];
  9. $dbPath = __DIR__ . '/../' . $dbFile;
  10. $this->pdo = new \PDO("sqlite:" . $dbPath);
  11. $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
  12. }
  13. public function getCategories(int $companyId): array
  14. {
  15. $stmt = $this->pdo->prepare("SELECT * FROM category WHERE company_id = :company_id AND category_flag != 'd'");
  16. $stmt->execute(['company_id' => $companyId]);
  17. return $stmt->fetchAll(\PDO::FETCH_ASSOC);
  18. }
  19. public function createCategory(string $name, int $companyId): bool
  20. {
  21. $stmt = $this->pdo->prepare("INSERT INTO category (category_name, category_flag, company_id)
  22. VALUES (:name, 'a', :company_id)");
  23. return $stmt->execute(['name' => $name, 'company_id' => $companyId]);
  24. }
  25. public function deleteByName(string $name, int $companyId): bool
  26. {
  27. $stmt = $this->pdo->prepare("UPDATE category SET category_flag = 'd'
  28. WHERE category_name = :name AND company_id = :company_id AND category_flag != 'd'");
  29. return $stmt->execute(['name' => $name, 'company_id' => $companyId]);
  30. }
  31. public function updateFlag(string $name, int $companyId, string $newFlag): bool
  32. {
  33. $stmt = $this->pdo->prepare("UPDATE category SET category_flag = :flag
  34. WHERE category_name = :name AND company_id = :company_id AND category_flag != 'd'");
  35. return $stmt->execute([
  36. 'flag' => $newFlag,
  37. 'name' => $name,
  38. 'company_id' => $companyId
  39. ]);
  40. }
  41. }