From d7170d520e6ba9b3f5376dd268b9f419a0dc9994 Mon Sep 17 00:00:00 2001 From: dakkar Date: Wed, 8 Feb 2006 16:20:37 +0000 Subject: tentativo di modello... la documentazione di DBIC fa un po' pena git-svn-id: svn://luxion/repos/IscrittiGroLUG/trunk@168 fcb26f47-9200-0410-b104-b98ab5b095f3 --- GroLUG/lib/GroLUG/M/DB.pm | 6 +++--- GroLUG/lib/GroLUG/M/DB/Iscritto.pm | 10 ++++++++++ GroLUG/lib/GroLUG/M/DB/Pagamento.pm | 20 ++++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 GroLUG/lib/GroLUG/M/DB/Iscritto.pm create mode 100644 GroLUG/lib/GroLUG/M/DB/Pagamento.pm (limited to 'GroLUG/lib') diff --git a/GroLUG/lib/GroLUG/M/DB.pm b/GroLUG/lib/GroLUG/M/DB.pm index e45de9e..193cb7a 100644 --- a/GroLUG/lib/GroLUG/M/DB.pm +++ b/GroLUG/lib/GroLUG/M/DB.pm @@ -4,14 +4,14 @@ use strict; use base 'Catalyst::Model::DBIC::Plain'; my @conn_info = ( - '', - '', + 'dbi:Pg:dbname=iscritti', + 'grolug', '', { RaiseError => 1, PrintError => 0, ShowErrorStatement => 1, TraceLevel => 0 } ); __PACKAGE__->load_classes; -__PACKAGE__->compose_connection( __PACKAGE__, @conn_info ); +#DBIx::Class::Schema->compose_connection( __PACKAGE__, @conn_info ); =head1 NAME diff --git a/GroLUG/lib/GroLUG/M/DB/Iscritto.pm b/GroLUG/lib/GroLUG/M/DB/Iscritto.pm new file mode 100644 index 0000000..32282f5 --- /dev/null +++ b/GroLUG/lib/GroLUG/M/DB/Iscritto.pm @@ -0,0 +1,10 @@ +package GroLUG::M::DB::Iscritto; +use base 'DBIx::Class::Core'; + +__PACKAGE__->load_components(qw(PK::Auto::Pg)); +__PACKAGE__->table('iscritti'); +__PACKAGE__->add_columns(qw(id nome email note)); +__PACKAGE__->set_primary_key('id'); +__PACKAGE__->has_many(pagamenti=>'GroLUG::M::DB::Pagamento','iscritto'); + +1; diff --git a/GroLUG/lib/GroLUG/M/DB/Pagamento.pm b/GroLUG/lib/GroLUG/M/DB/Pagamento.pm new file mode 100644 index 0000000..23ee176 --- /dev/null +++ b/GroLUG/lib/GroLUG/M/DB/Pagamento.pm @@ -0,0 +1,20 @@ +package GroLUG::M::DB::Pagamento; +use base 'DBIx::Class::Core'; +use DateTime::Format::Pg; + +__PACKAGE__->load_components(qw(PK::Auto::Pg)); +__PACKAGE__->table('pagamenti'); +__PACKAGE__->add_columns(qw(id iscritto data_pagamento data_iscrizione data_scadenza prezzo)); +__PACKAGE__->set_primary_key('id'); +__PACKAGE__->belongs_to(iscritto=>'GroLUG::M::DB::Iscritto'); + +for my $col (qw(data_pagamento data_iscrizione data_scadenza)) { + __PACKAGE__->inflate_column( + $col, + { + inflate => sub { DateTime::Format::Pg->parse_datetime(shift) }, + deflate => sub { DateTime::Format::Pg->format_datetime(shift) }, + }); +} + +1; -- cgit v1.2.3