Commit | Line | Data |
4f4fd192 |
1 | use MooseX::Declare; |
ebf2721d |
2 | class SQL::Translator::Object::Column extends SQL::Translator::Object { |
1ddd6d2a |
3 | use MooseX::Types::Moose qw(Bool Int Maybe ScalarRef Str); |
f49a2a49 |
4 | use MooseX::MultiMethods; |
ada068ed |
5 | use SQL::Translator::Types qw(Bit 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, |
2cb42d47 |
37 | default => sub { [ 0 ] }, |
4f4fd192 |
38 | ); |
39 | |
40 | has 'is_nullable' => ( |
41 | is => 'rw', |
2cb42d47 |
42 | isa => Bit, |
4f4fd192 |
43 | required => 1, |
44 | default => 1 |
45 | ); |
46 | |
4f4fd192 |
47 | has 'default_value' => ( |
48 | is => 'rw', |
1ddd6d2a |
49 | isa => Maybe[ScalarRef|Str], |
4f4fd192 |
50 | ); |
0874db2d |
51 | |
81429cb9 |
52 | has 'is_auto_increment' => ( |
53 | is => 'rw', |
ada068ed |
54 | isa => Bit, |
81429cb9 |
55 | required => 1, |
ada068ed |
56 | coerce => 1, |
81429cb9 |
57 | default => 0 |
58 | ); |
59 | |
0874db2d |
60 | has 'is_primary_key' => ( |
61 | is => 'rw', |
62 | isa => Bool, |
63 | default => 0 |
64 | ); |
70ada8ac |
65 | |
66 | has 'is_foreign_key' => ( |
67 | is => 'rw', |
68 | isa => Bool, |
69 | default => 0 |
70 | ); |
71 | |
72 | has 'foreign_key_reference' => ( |
73 | is => 'rw', |
74 | isa => Constraint, |
75 | ); |
4f4fd192 |
76 | |
77 | has 'trigger' => ( |
78 | is => 'rw', |
79 | isa => Trigger, |
80 | ); |
0874db2d |
81 | |
70ada8ac |
82 | around size(@args) { |
83 | $self->$orig(@args) if @args; |
84 | my @sizes = $self->$orig; |
85 | return wantarray ? @sizes |
86 | : join ',', @sizes; |
87 | } |
b750d2f1 |
88 | |
89 | method order { } |
90 | method is_unique { } |
4f4fd192 |
91 | } |