1package App::Netdisco::DB::Result::Virtual::LastNode; 2 3use strict; 4use warnings; 5 6use base 'DBIx::Class::Core'; 7 8__PACKAGE__->table_class('DBIx::Class::ResultSource::View'); 9 10__PACKAGE__->table('last_node'); 11__PACKAGE__->result_source_instance->is_virtual(1); 12__PACKAGE__->result_source_instance->view_definition(<<ENDSQL 13 SELECT DISTINCT ON (switch, port) * FROM node 14 ORDER BY switch, port, time_last desc 15ENDSQL 16); 17 18__PACKAGE__->add_columns( 19 "mac", 20 { data_type => "macaddr", is_nullable => 0 }, 21 "switch", 22 { data_type => "inet", is_nullable => 0 }, 23 "port", 24 { data_type => "text", is_nullable => 0 }, 25 "active", 26 { data_type => "boolean", is_nullable => 1 }, 27 "oui", 28 { data_type => "varchar", is_nullable => 1, size => 8 }, 29 "time_first", 30 { 31 data_type => "timestamp", 32 default_value => \"current_timestamp", 33 is_nullable => 1, 34 original => { default_value => \"now()" }, 35 }, 36 "time_recent", 37 { 38 data_type => "timestamp", 39 default_value => \"current_timestamp", 40 is_nullable => 1, 41 original => { default_value => \"now()" }, 42 }, 43 "time_last", 44 { 45 data_type => "timestamp", 46 default_value => \"current_timestamp", 47 is_nullable => 1, 48 original => { default_value => \"now()" }, 49 }, 50 "vlan", 51 { data_type => "text", is_nullable => 0, default_value => '0' }, 52); 53 541; 55