move comments down to the base Object
[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 );
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}