55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| package App::Netdisco::DB::Result::Virtual::LastNode;
 | |
| 
 | |
| use strict;
 | |
| use warnings;
 | |
| 
 | |
| use base 'DBIx::Class::Core';
 | |
| 
 | |
| __PACKAGE__->table_class('DBIx::Class::ResultSource::View');
 | |
| 
 | |
| __PACKAGE__->table('last_node');
 | |
| __PACKAGE__->result_source_instance->is_virtual(1);
 | |
| __PACKAGE__->result_source_instance->view_definition(<<ENDSQL
 | |
|   SELECT DISTINCT ON (switch, port) * FROM node
 | |
|     ORDER BY switch, port, time_last desc
 | |
| ENDSQL
 | |
| );
 | |
| 
 | |
| __PACKAGE__->add_columns(
 | |
|   "mac",
 | |
|   { data_type => "macaddr", is_nullable => 0 },
 | |
|   "switch",
 | |
|   { data_type => "inet", is_nullable => 0 },
 | |
|   "port",
 | |
|   { data_type => "text", is_nullable => 0 },
 | |
|   "active",
 | |
|   { data_type => "boolean", is_nullable => 1 },
 | |
|   "oui",
 | |
|   { data_type => "varchar", is_nullable => 1, size => 8 },
 | |
|   "time_first",
 | |
|   {
 | |
|     data_type     => "timestamp",
 | |
|     default_value => \"LOCALTIMESTAMP",
 | |
|     is_nullable   => 1,
 | |
|     original      => { default_value => \"LOCALTIMESTAMP" },
 | |
|   },
 | |
|   "time_recent",
 | |
|   {
 | |
|     data_type     => "timestamp",
 | |
|     default_value => \"LOCALTIMESTAMP",
 | |
|     is_nullable   => 1,
 | |
|     original      => { default_value => \"LOCALTIMESTAMP" },
 | |
|   },
 | |
|   "time_last",
 | |
|   {
 | |
|     data_type     => "timestamp",
 | |
|     default_value => \"LOCALTIMESTAMP",
 | |
|     is_nullable   => 1,
 | |
|     original      => { default_value => \"LOCALTIMESTAMP" },
 | |
|   },
 | |
|   "vlan",
 | |
|   { data_type => "text", is_nullable => 0, default_value => '0' },
 | |
| );
 | |
| 
 | |
| 1;
 |