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