The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package #hide from pause
 DBIx::Class::Schema::PopulateMore::Test::Schema::Result::CompanyPerson;

use parent 'DBIx::Class::Schema::PopulateMore::Test::Schema::Result';

=head1 NAME

DBIx::Class::Schema::PopulateMore::Test::Schema::Result::CompanyPerson - Bridge between Company and Person

=head1 DESCRIPTION

Bridge table for many to many style relationship between Company and Person.

=head1 ATTRIBUTES

This class defines the following attributes.

=head1 PACKAGE METHODS

This module defines the following package methods

=head2 table

Name of the Physical table in the database

=cut

__PACKAGE__
    ->table('company_person');


=head2 add_columns

Add columns and meta information

=head3 fk_person_id

ID of the person with a companies

=head3 fk_company_id

ID of the company with persons

=cut

__PACKAGE__
    ->add_columns(
        fk_person_id => {
            data_type=>'integer',
        },
        fk_company_id => {
            data_type=>'integer',
        },
);
        

=head2 primary_key

Sets the Primary keys for this table

=cut

__PACKAGE__
    ->set_primary_key(qw/fk_person_id fk_company_id/);
    

=head2 employee

The person that is employeed by a company

=cut

__PACKAGE__
    ->belongs_to( employee => 'DBIx::Class::Schema::PopulateMore::Test::Schema::Result::Person', {
        'foreign.person_id' => 'self.fk_person_id' });


=head2 company

The company that employees the person

=cut

__PACKAGE__
    ->belongs_to( company => 'DBIx::Class::Schema::PopulateMore::Test::Schema::Result::Company', { 
        'foreign.company_id' => 'self.fk_company_id' });


=head2 employment_history

each instance of a company_person has a related employment history

=cut

__PACKAGE__
    ->has_one (employment_history => 'DBIx::Class::Schema::PopulateMore::Test::Schema::Result::EmploymentHistory', {
        'foreign.fk_company_id' => 'self.fk_company_id',
        'foreign.fk_person_id' => 'self.fk_person_id',
    });


=head1 METHODS

This module defines the following methods.

=head1 AUTHOR

Please see L<DBIx::Class::Schema::PopulateMore> For authorship information

=head1 LICENSE

Please see L<DBIx::Class::Schema::PopulateMore> For licensing terms.

=cut


1;