53a908bd669706df59a129112f6944dea266dda9
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Column.pm
1 use MooseX::Declare;
2 class SQL::Translator::Object::Column {
3     use MooseX::Types::Moose qw(Bool HashRef Int Maybe Str);
4     use SQL::Translator::Types qw(Trigger);
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',
15         isa => Str,
16         required => 1
17     );
18
19     has 'sql_data_type' => (
20         is => 'rw',
21         isa => Int,
22         required => 1
23     );
24     
25     has 'size' => (
26         is => 'rw',
27         isa => Maybe[Int],
28         required => 1
29     );
30     
31     has 'is_nullable' => (
32         is => 'rw',
33         isa => Bool,
34         required => 1,
35         default => 1
36     );
37     
38     has 'default_value' => (
39         is => 'rw',
40         isa => Maybe[Str],
41     );
42     
43     has 'comments' => (
44         is => 'rw',
45         isa => Maybe[Str],
46     );
47
48     has 'is_auto_increment' => (
49         is => 'rw',
50         isa => Bool,
51         required => 1,
52         default => 0
53     );
54
55     has 'is_primary_key' => (
56         is => 'rw',
57         isa => Bool,
58         default => 0
59     );
60     
61     has 'trigger' => (
62         is => 'rw',
63         isa => Trigger,
64     );
65
66     has 'extra' => (
67         is => 'rw',
68         isa => HashRef,
69         auto_deref => 1,
70     );
71 }