72 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| package App::Netdisco::DB::Result::Virtual::ApRadioChannelPower;
 | |
| 
 | |
| use strict;
 | |
| use warnings;
 | |
| 
 | |
| use base 'DBIx::Class::Core';
 | |
| 
 | |
| __PACKAGE__->table_class('DBIx::Class::ResultSource::View');
 | |
| 
 | |
| __PACKAGE__->table('ap_radio_channel_power');
 | |
| __PACKAGE__->result_source_instance->is_virtual(1);
 | |
| __PACKAGE__->result_source_instance->view_definition(<<ENDSQL
 | |
| SELECT w.channel,
 | |
|        w.power,
 | |
|        w.ip,
 | |
|        w.port,
 | |
|        dp.name AS port_name,
 | |
|        dp.descr,
 | |
|        d.name AS device_name,
 | |
|        d.dns,
 | |
|        d.model,
 | |
|        d.location,
 | |
|        CASE
 | |
|            WHEN w.power > 0 THEN round((10.0 * log(w.power) / log(10))::numeric, 1)
 | |
|            ELSE NULL
 | |
|        END AS power2
 | |
| FROM device_port_wireless AS w
 | |
| JOIN device_port AS dp ON dp.port = w.port
 | |
| AND dp.ip = w.ip
 | |
| JOIN device AS d ON d.ip = w.ip
 | |
| WHERE w.channel != '0'
 | |
| ENDSQL
 | |
| );
 | |
| 
 | |
| __PACKAGE__->add_columns(
 | |
|   'channel' => {
 | |
|     data_type => 'integer',
 | |
|   },
 | |
|   'power' => {
 | |
|     data_type => 'integer',
 | |
|   },
 | |
|   'ip' => {
 | |
|     data_type => 'inet',
 | |
|   },
 | |
|   'port' => {
 | |
|     data_type => 'text',
 | |
|   },
 | |
|   'port_name' => {
 | |
|     data_type => 'text',
 | |
|   },
 | |
|   'descr' => {
 | |
|     data_type => 'text',
 | |
|   },
 | |
|   'device_name' => {
 | |
|     data_type => 'text',
 | |
|   },
 | |
|   'dns' => {
 | |
|     data_type => 'text',
 | |
|   },
 | |
|   'model' => {
 | |
|     data_type => 'text',
 | |
|   },
 | |
|   'location' => {
 | |
|     data_type => 'text',
 | |
|   },
 | |
|   'power2' => {
 | |
|     data_type => 'numeric',
 | |
|   },
 | |
| );
 | |
| 
 | |
| 1;
 |