Commit | Line | Data |
d27ed438 |
1 | package DBIx::Class::Schema::Journal::DB::AuditLog; |
2 | |
34b144a0 |
3 | use base 'DBIx::Class::Core'; |
30a4f241 |
4 | |
5 | sub journal_define_table { |
5b64dcdc |
6 | my ( $class, $source, $schema_class ) = @_; |
30a4f241 |
7 | |
34b144a0 |
8 | $class->table($source->name . '_audit_log'); |
30a4f241 |
9 | |
10 | $class->add_columns( |
11 | create_id => { |
12 | data_type => 'integer', |
13 | is_nullable => 0, |
14 | is_foreign_key => 1, |
15 | }, |
16 | delete_id => { |
17 | data_type => 'integer', |
18 | is_nullable => 1, |
19 | is_foreign_key => 1, |
20 | } |
21 | ); |
22 | |
23 | foreach my $column ( $source->primary_columns ) { |
24 | $class->add_column( $column => { %{ $source->column_info($column) } } ); |
25 | } |
26 | |
27 | $class->set_primary_key( $source->primary_columns ); |
28 | |
5b64dcdc |
29 | $class->belongs_to(created => "${schema_class}::ChangeLog", 'create_id'); |
30 | $class->belongs_to(deleted => "${schema_class}::ChangeLog", 'delete_id'); |
30a4f241 |
31 | } |
d27ed438 |
32 | |
33 | 1; |