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