fix options and comments methods
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Column.pm
CommitLineData
4f4fd192 1use MooseX::Declare;
ebf2721d 2class SQL::Translator::Object::Column extends SQL::Translator::Object {
1c607f61 3 use MooseX::Types::Moose qw(Bool 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}