add triggers to Schema
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Column.pm
CommitLineData
4f4fd192 1use MooseX::Declare;
2class SQL::Translator::Object::Column {
70ada8ac 3 use MooseX::Types::Moose qw(ArrayRef Bool HashRef Int Maybe Str);
4 use SQL::Translator::Types qw(ColumnSize Constraint Trigger);
4f4fd192 5 extends 'SQL::Translator::Object';
6
7 has 'name' => (
8 is => 'rw',
9 isa => Str,
10 required => 1
11 );
12
13 has 'data_type' => (
14 is => 'rw',
81429cb9 15 isa => Str,
16 required => 1
17 );
18
19 has 'sql_data_type' => (
20 is => 'rw',
4f4fd192 21 isa => Int,
22 required => 1
23 );
24
25 has 'size' => (
26 is => 'rw',
70ada8ac 27 isa => ColumnSize,
28 coerce => 1,
29 auto_deref => 1,
4f4fd192 30 );
31
32 has 'is_nullable' => (
33 is => 'rw',
34 isa => Bool,
35 required => 1,
36 default => 1
37 );
38
4f4fd192 39 has 'default_value' => (
40 is => 'rw',
41 isa => Maybe[Str],
42 );
43
2225e251 44 has 'comments' => (
4f4fd192 45 is => 'rw',
46 isa => Maybe[Str],
47 );
0874db2d 48
81429cb9 49 has 'is_auto_increment' => (
50 is => 'rw',
51 isa => Bool,
52 required => 1,
53 default => 0
54 );
55
0874db2d 56 has 'is_primary_key' => (
57 is => 'rw',
58 isa => Bool,
59 default => 0
60 );
70ada8ac 61
62 has 'is_foreign_key' => (
63 is => 'rw',
64 isa => Bool,
65 default => 0
66 );
67
68 has 'foreign_key_reference' => (
69 is => 'rw',
70 isa => Constraint,
71 );
4f4fd192 72
73 has 'trigger' => (
74 is => 'rw',
75 isa => Trigger,
76 );
0874db2d 77
78 has 'extra' => (
79 is => 'rw',
80 isa => HashRef,
81 auto_deref => 1,
82 );
70ada8ac 83
84 around size(@args) {
85 $self->$orig(@args) if @args;
86 my @sizes = $self->$orig;
87 return wantarray ? @sizes
88 : join ',', @sizes;
89 }
4f4fd192 90}