package MyApp::Schema::Result::User; use Moose; use MooseX::NonMoose; use namespace::autoclean; use List::MoreUtils qw(any none); extends 'MyApp::Schema::Result'; __PACKAGE__->table('user'); __PACKAGE__->load_components( qw( EncodedColumn ) ); __PACKAGE__->add_columns( id => { data_type => 'integer', size => 16, is_nullable => 0, is_auto_increment => 1 }, username => { data_type => 'varchar', size => 256, is_nullable => 0, is_auto_increment => 0, }, ); __PACKAGE__->set_primary_key('id'); __PACKAGE__->has_one('profile' => 'MyApp::Schema::Result::Profile', 'user_id'); __PACKAGE__->has_many( user_roles => 'MyApp::Schema::Result::UserRole', 'user_id' ); __PACKAGE__->many_to_many( roles => 'user_roles', 'role' );