package SQL::LinkTable;
use strict;
use base 'SQL::ProtoTable';
sub db_table
{
return 'links';
}
sub available_filters {
my @available_filters = qw(
_class_filter
_status_filter
_in_id_filter
_id_filter
_name_filter
_class_excludes_filter
_excludes_filter
_datetime_filter
_date_equal_filter
_date_filter
_dest_id_filter
_source_id_filter
_source_class_filter
_dest_class_filter
);
return \@available_filters;
}
# ----------------------------------------------------------------------------
# �������� ������ � ��������, ������ ��� ������� �����!
# ��� ����� �������� - ���������� ��� ���� ����������.
#
# attr - ������������ ��������, �������� ��������;
# type - ��� ���������, ��������� ��� ������������;
# rusname - ������� ��������, ����� �� ��������� ��� �����������;
# hidden - ����� 1, �����
# readonly - ������������� ��� ������ ������ ��� ��������� � ����������
# db_field - ���� � �������
# default - �������� �� ��������� (���� ������ ����� ��� ��������)
# ----------------------------------------------------------------------------
sub required_properties
{
return (
{ # ������������� ���������, �������� �� ���� �����...
'attr' => 'id',
'type' => 'integer',
'rusname' => '������������� ���������',
'hidden' => 1,
'auto' => 1,
'db_field' => 'id',
'readonly' => 1,
'db_type' => 'integer',
},
{ # ����� ���������...
'attr' => 'class',
'type' => 'string',
'rusname' => '����� ���������',
'hidden' => 1,
'db_field' => 'class',
'readonly' => 1,
'db_type' => 'varchar(48)',
},
{ # ��� ���������...
'attr' => 'source_id',
'type' => 'string',
'rusname' => 'ID ���������',
'db_field' => 'source_id',
'db_type' => 'integer',
},
{ # ��� ���������...
'attr' => 'source_class',
'type' => 'string',
'rusname' => '����� ���������',
'db_field' => 'source_class',
'db_type' => 'varchar(48)',
},
{ # ��� ���������...
'attr' => 'dest_id',
'type' => 'string',
'rusname' => 'ID ����',
'db_field' => 'dest_id',
'db_type' => 'integer',
},
{ # ��� ���������...
'attr' => 'dest_class',
'type' => 'string',
'rusname' => '����� ����',
'db_field' => 'dest_class',
'db_type' => 'varchar(48)',
},
{ # ����� �������� ���������, ��������� ����...
'attr' => 'ctime',
'type' => 'datetime',
'rusname' => '����� ��������',
'hidden' => 1,
'auto' => 1,
'db_field' => 'ctime',
'readonly' => 1,
'default' => 'CURRENT_TIMESTAMP',
'db_type' => 'timestamp',
},
{ # ����� ����������� ���������, ��������� ����...
'attr' => 'mtime',
'type' => 'datetime',
'rusname' => '����� �����������',
'hidden' => 1,
'auto' => 1,
'db_field' => 'mtime',
'default' => 'CURRENT_TIMESTAMP',
'db_type' => 'timestamp',
},
{ # ���� ���� ������� �������� ����������...
'attr' => 'status',
'type' => 'status',
'rusname' => '������',
'db_field' => 'status',
'db_type' => 'integer',
},
);
}
########### FILTERS DESCRIPTION ####################################################################################
sub _dest_id_filter {
my ($self,%opts)=@_;
return undef unless ( exists($opts{dest_id}) );
return &SQL::Common::_generic_int_filter('d.dest_id', $opts{dest_id});
}
sub _source_id_filter {
my ($self,%opts)=@_;
return undef unless ( exists($opts{source_id}) );
return &SQL::Common::_generic_int_filter('d.source_id', $opts{source_id});
}
sub _source_class_filter {
my ($self, %opts)=@_;
return undef unless ( exists($opts{source_class}) );
return &SQL::Common::_generic_text_filter('d.source_class', $opts{source_class});
}
sub _dest_class_filter {
my ($self, %opts)=@_;
return undef unless ( exists($opts{dest_class}) );
return &SQL::Common::_generic_text_filter('d.dest_class', $opts{dest_class});
}
1;