summaryrefslogtreecommitdiff
path: root/src/application/mystic/forum/attributes/References.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/application/mystic/forum/attributes/References.php')
-rw-r--r--src/application/mystic/forum/attributes/References.php14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/application/mystic/forum/attributes/References.php b/src/application/mystic/forum/attributes/References.php
index 9e33927..8271ebb 100644
--- a/src/application/mystic/forum/attributes/References.php
+++ b/src/application/mystic/forum/attributes/References.php
@@ -4,15 +4,25 @@ namespace mystic\forum\attributes;
#[\Attribute(\Attribute::TARGET_PROPERTY)]
class References {
+ public const NO_ACTION = 0;
+ public const CASCADE = 1;
+ public const SET_NULL = 2;
+ public const SET_DEFAULT = 3;
+
public function __construct(
public readonly string $foreignTableName,
public readonly ?string $foreignColumnName = null,
- public readonly bool $cascadeOnDelete = false,
+ public readonly int $onDelete = self::NO_ACTION,
) {}
public function __toString(): string {
return $this->foreignTableName
. ($this->foreignColumnName !== null ? " ({$this->foreignColumnName})" : "")
- . ($this->cascadeOnDelete ? " ON DELETE CASCADE" : "");
+ . ([
+ self::NO_ACTION => "",
+ self::CASCADE => " ON DELETE CASCADE",
+ self::SET_NULL => " ON DELETE SET NULL",
+ self::SET_DEFAULT => " ON DELETE SET DEFAULT",
+ ][$this->onDelete] ?? "");
}
}