-package SQL::Translator::Object::ForeignKey;
-use Moose;
-use SQL::Translator::Types qw(Index PrimaryKey);
-extends 'SQL::Translator::Object::Constraint';
+use MooseX::Declare;
+class SQL::Translator::Object::ForeignKey extends SQL::Translator::Object::Constraint {
+ use MooseX::Types::Moose qw(Maybe Str);
+
+ has '+type' => (
+ default => 'FOREIGN KEY',
+ );
+
+ has 'on_delete' => (
+ isa => Maybe[Str],
+ is => 'rw',
+ );
-has '+type' => (
- default => 'FOREIGN_KEY',
-);
+ has 'on_update' => (
+ isa => Maybe[Str],
+ is => 'rw',
+ );
-has 'references' => (
- isa => PrimaryKey | Index,
- is => 'rw',
- required => 1,
-);
-
-1;
+ has 'reference_table' => (
+ isa => Str,
+ is => 'rw',
+ );
+}