our $properties = { time => undef,
trad_ref => undef,
adr_buyer_bank => 'test',
adr_seller_bank => undef,
seller_pays => undef,
};
sub new {
my $class = shift;
my $self = {};
map { $self->{$_} = $properties->{$_} } keys %$properties;
bless $self, $class;
$self->_init(@_);
return $self;
}
sub _init {
my $self = shift;
if(@_) {
my %args = @_;
map { $self->{$_} = $args{$_} if exists $self->{$_} } keys %args;
}
$self->{__dbh} = DBI->connection(...) unless defined $self->{__dbh};
}
sub load {
my $self = shift;
my $sql = "SELECT * FROM tickets WHERE id = ?";
my $sth = $dbh->prepare($sql) or die $dbh->errstr;
$sth->execute($ticket_number);
my $row = $sth->fetchrow_hashref;
$self->_init(%$row);
return 1;
}
####
my $ticket = MyApp::Ticket->new();
####
my $ticket = MyApp::Ticket->new(time => time(),
trad_ref => 34567,
adr_buyer_bank => 'blah',
adr_seller_bank => 'blah,
seller_pays => 99.99);
####
my $ticket = MyApp::Ticket->new();
my $res = $ticket->load(12345);