You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.2KB

  1. <?php
  2. declare(strict_types=1);
  3. use Core\Database;
  4. use Core\Migration;
  5. return new class extends Migration
  6. {
  7. public function up(Database $database): void
  8. {
  9. $database->execute('
  10. CREATE TABLE IF NOT EXISTS territories (
  11. id INTEGER PRIMARY KEY AUTOINCREMENT,
  12. name VARCHAR(255) NOT NULL,
  13. description TEXT,
  14. coordinates TEXT,
  15. created_at DATETIME,
  16. updated_at DATETIME
  17. )
  18. ');
  19. $database->execute('
  20. CREATE TABLE IF NOT EXISTS households (
  21. id INTEGER PRIMARY KEY AUTOINCREMENT,
  22. territory_id INTEGER NOT NULL,
  23. address VARCHAR(255) NOT NULL,
  24. street_number INTEGER,
  25. street_name VARCHAR(255),
  26. latitude REAL,
  27. longitude REAL,
  28. is_business INTEGER NOT NULL DEFAULT 0,
  29. do_not_call INTEGER NOT NULL DEFAULT 0,
  30. do_not_call_date DATE,
  31. do_not_call_notes TEXT,
  32. do_not_call_private_notes TEXT,
  33. created_at DATETIME,
  34. updated_at DATETIME,
  35. FOREIGN KEY (territory_id) REFERENCES territories(id)
  36. )
  37. ');
  38. $database->execute('
  39. CREATE TABLE IF NOT EXISTS householder_names (
  40. id INTEGER PRIMARY KEY AUTOINCREMENT,
  41. household_id INTEGER NOT NULL,
  42. name VARCHAR(255) NOT NULL,
  43. letter_returned INTEGER NOT NULL DEFAULT 0,
  44. return_date DATETIME,
  45. created_at DATETIME,
  46. updated_at DATETIME,
  47. FOREIGN KEY (household_id) REFERENCES households(id)
  48. )
  49. ');
  50. }
  51. public function down(Database $database): void
  52. {
  53. foreach (['householder_names', 'households', 'territories'] as $table) {
  54. $database->execute("DROP TABLE IF EXISTS {$table}");
  55. }
  56. }
  57. };

Powered by TurnKey Linux.