__PACKAGE__->table(
"device_vlan"
);
__PACKAGE__->add_columns(
"ip"
,
{
data_type
=>
"inet"
,
is_nullable
=> 0 },
"vlan"
,
{
data_type
=>
"integer"
,
is_nullable
=> 0 },
"description"
,
{
data_type
=>
"text"
,
is_nullable
=> 1 },
"creation"
,
{
data_type
=>
"timestamp"
,
default_value
=> \
"LOCALTIMESTAMP"
,
is_nullable
=> 1,
original
=> {
default_value
=> \
"LOCALTIMESTAMP"
},
},
"last_discover"
,
{
data_type
=>
"timestamp"
,
default_value
=> \
"LOCALTIMESTAMP"
,
is_nullable
=> 1,
original
=> {
default_value
=> \
"LOCALTIMESTAMP"
},
},
);
__PACKAGE__->set_primary_key(
"ip"
,
"vlan"
);
__PACKAGE__->belongs_to(
device
=>
'App::Netdisco::DB::Result::Device'
,
'ip'
);
__PACKAGE__->has_many(
port_vlans_tagged
=>
'App::Netdisco::DB::Result::DevicePortVlan'
,
sub
{
my
$args
=
shift
;
return
{
"$args->{foreign_alias}.ip"
=> {
-ident
=>
"$args->{self_alias}.ip"
},
"$args->{foreign_alias}.vlan"
=> {
-ident
=>
"$args->{self_alias}.vlan"
},
-not_bool
=>
"$args->{foreign_alias}.native"
,
};
},
{
cascade_copy
=> 0,
cascade_update
=> 0,
cascade_delete
=> 0 }
);
__PACKAGE__->has_many(
port_vlans_untagged
=>
'App::Netdisco::DB::Result::DevicePortVlan'
,
sub
{
my
$args
=
shift
;
return
{
"$args->{foreign_alias}.ip"
=> {
-ident
=>
"$args->{self_alias}.ip"
},
"$args->{foreign_alias}.vlan"
=> {
-ident
=>
"$args->{self_alias}.vlan"
},
-bool
=>
"$args->{foreign_alias}.native"
,
};
},
{
cascade_copy
=> 0,
cascade_update
=> 0,
cascade_delete
=> 0 }
);
__PACKAGE__->has_many(
ports
=>
'App::Netdisco::DB::Result::DevicePortVlan'
,
{
'foreign.ip'
=>
'self.ip'
,
'foreign.vlan'
=>
'self.vlan'
},
{
cascade_copy
=> 0,
cascade_update
=> 0,
cascade_delete
=> 0 }
);
__PACKAGE__->many_to_many(
tagged_ports
=>
'port_vlans_tagged'
,
'port'
);
__PACKAGE__->many_to_many(
untagged_ports
=>
'port_vlans_untagged'
,
'port'
);
1;