Commit | Line | Data |
4f4fd192 |
1 | use MooseX::Declare; |
2 | class 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 | ); |
0874db2d |
43 | |
81429cb9 |
44 | has 'is_auto_increment' => ( |
45 | is => 'rw', |
46 | isa => Bool, |
47 | required => 1, |
48 | default => 0 |
49 | ); |
50 | |
0874db2d |
51 | has 'is_primary_key' => ( |
52 | is => 'rw', |
53 | isa => Bool, |
54 | default => 0 |
55 | ); |
70ada8ac |
56 | |
57 | has 'is_foreign_key' => ( |
58 | is => 'rw', |
59 | isa => Bool, |
60 | default => 0 |
61 | ); |
62 | |
63 | has 'foreign_key_reference' => ( |
64 | is => 'rw', |
65 | isa => Constraint, |
66 | ); |
4f4fd192 |
67 | |
68 | has 'trigger' => ( |
69 | is => 'rw', |
70 | isa => Trigger, |
71 | ); |
0874db2d |
72 | |
73 | has 'extra' => ( |
74 | is => 'rw', |
75 | isa => HashRef, |
76 | auto_deref => 1, |
77 | ); |
70ada8ac |
78 | |
79 | around size(@args) { |
80 | $self->$orig(@args) if @args; |
81 | my @sizes = $self->$orig; |
82 | return wantarray ? @sizes |
83 | : join ',', @sizes; |
84 | } |
b750d2f1 |
85 | |
86 | method order { } |
87 | method is_unique { } |
4f4fd192 |
88 | } |