<?php

require_once( 'Zend/Db.php' );
require_once( 
'Zend/Db/Table.php' );
require_once( 
'Zend/Db/Table/Row.php' );


class 
pfaAdmins extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.admin';    // database.tablename
    
protected $_primary  'username';      // primary key, array if combined
    
protected $_sequence false;           // primary key is auto_increment
    
protected $_rowClass 'pfaAdmin';      // for rows, return objects of that type
    
protected $_rowSetClass "";           // for a set of rows, use that class (had no usage for this yet).
    
protected $_dependentTables = Array(    // list tables depending on this one
        
'pfaDomainAdmins'
    
);
    
// protected $_columns = Array(
    //   'username' => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'password' => Array( 'varchar(255)', 'utf8_general_ci',  '' ),
    //   'created'  => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'modified' => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'active'   => Array( 'tinyint(1)',   '',                 '1' )
    // );
}
class 
pfaAdmin extends Zend_Db_Table_Row_Abstract {
}


class 
pfaAliases extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.alias';    // database.tablename
    
protected $_primary  'address';       // primary key, array if combined
    
protected $_sequence false;           // primary key is auto_increment
    
protected $_rowClass 'pfaAlias';      // for rows, return objects of that type
    
protected $_rowSetClass  "";          // for a set of rows, use that class (had no usage for this yet).
    
protected $_referenceMap = Array(       // foreign keys for cascading write operations
        
'Domain' => Array(
            
'columns'       => 'domain',
            
'refTableClass' => 'pfaDomains',
            
'refColumns'    => 'domain',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
)
    );
    
// protected $_columns = Array(
    //   'address'  => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'goto'     => Array( 'text(65353)',  'ascii_general_ci', '' ),
    //   'domain'   => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'created'  => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'modified' => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'active'   => Array( 'tinyint(1)',   '',                 '1' )
    // );
}
class 
pfaAlias extends Zend_Db_Table_Row_Abstract {
}


class 
pfaAliasDomains extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.alias_domain'// database.tablename
    
protected $_primary  'alias_domain';      // primary key, array if combined
    
protected $_sequence false;               // primary key is auto_increment
    
protected $_rowClass 'pfaAliasDomain';    // for rows, return objects of that type
    
protected $_rowSetClass  "";              // for a set of rows, use that class (had no usage for this yet).
    
protected $_referenceMap = Array(           // foreign keys for cascading write operations
        
'AliasDomain' => Array(
            
'columns'       => 'alias_domain',
            
'refTableClass' => 'pfaDomains',
            
'refColumns'    => 'domain',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
),
        
'TargetDomain' => Array(
            
'columns'       => 'target_domain',
            
'refTableClass' => 'pfaDomains',
            
'refColumns'    => 'domain',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
)
    );
    
// protected $_columns = Array(
    //   'alias_domain'  => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'target_domain' => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'created'       => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'modified'      => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'active'        => Array( 'tinyint(1)',   '',                 '1' )
    // );
}
class 
pfaAliasDomain extends Zend_Db_Table_Row_Abstract {
}


class 
pfaConfig extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.config';    // database.tablename
    
protected $_primary  'id' ;            // primary key, array if combined
    
protected $_sequence true;             // primary key is auto_increment
    
protected $_rowClass 'pfaConfigValue'// for rows, return objects of that type
    
protected $_rowSetClass  "";           // for a set of rows, use that class (had no usage for this yet).
    // protected $_columns = Array(
    //   'id'    => Array( 'int(11)',      '',                '' ),
    //   'name'  => Array( 'varchar(128)', 'utf8_general_ci', '' ),
    //   'value' => Array( 'varchar(255)', 'utf8_general_ci', '' )
    // );
}
class 
pfaConfigValue extends Zend_Db_Table_Row_Abstract {
}


class 
pfaDomains extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.domain';   // database.tablename
    
protected $_primary  'domain' ;       // primary key, array if combined
    
protected $_sequence false;           // primary key is auto_increment
    
protected $_rowClass 'pfaDomain';     // for rows, return objects of that type
    
protected $_rowSetClass  "";          // for a set of rows, use that class (had no usage for this yet).
    
protected $_dependentTables = Array(    // list tables depending on this one
        
'pfaAliases''pfaAliasDomains''pfaDomainAdmins''pfaMailboxes',
        
'pfaLog''pfaVacations''pfaVacationNotifications'
    
);
    
// protected $_columns = Array(
    //   'domain'      => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'description' => Array( 'varchar(255)', 'utf8_general_ci',  '' ),
    //   'aliases'     => Array( 'int(10)',      '',                 '0' ),
    //   'mailboxes'   => Array( 'int(10)',      '',                 '0' ),
    //   'maxquota'    => Array( 'bigint(20)',   '',                 '0' ),
    //   'quota'       => Array( 'bigint(20)',   '',                 '0' ),
    //   'transport'   => Array( 'varchar(255)', 'ascii_general_ci', NULL ),
    //   'backupmx'    => Array( 'tinyint(1)',   '',                 '0' ),
    //   'created'     => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'modified'    => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'active'      => Array( 'tinyint(1)',   '',                 '1' )
    // );
}
class 
pfaDomain extends Zend_Db_Table_Row_Abstract {
}


class 
pfaDomainAdmins extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.domain_admin'// database.tablename
    
protected $_primary  = Array(               // primary key, array if combined
        
'username''domain'
    
);
    protected 
$_sequence false;               // primary key is auto_increment
    
protected $_rowClass 'pfaDomainAdmin';    // for rows, return objects of that type
    
protected $_rowSetClass  "";              // for a set of rows, use that class (had no usage for this yet).
    
protected $_referenceMap = Array(           // foreign keys for cascading write operations
        
'Admin' => Array(
            
'columns'       => 'username',
            
'refTableClass' => 'pfaAdmins',
            
'refColumns'    => 'username',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
),
        
'Domain' => Array(
            
'columns'       => 'domain',
            
'refTableClass' => 'pfaDomains',
            
'refColumns'    => 'domain',
            
'onDelete'      => ''// self::CASCADE, // self::RESTRICT,
            
'onUpdate'      => ''// self::CASCADE, // self::RESTRICT
        
)
    );
    
// protected $_columns = Array(
    //   'username'  => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'domain'    => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'created'   => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'active'    => Array( 'tinyint(1)',   '',                 '1' )
    // );
}
class 
pfaDomainAdmin extends Zend_Db_Table_Row_Abstract {
}


class 
pfaLog extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.log';   // database.tablename
    
protected $_primary  'id';         // primary key, array if combined
    
protected $_sequence true;         // primary key is auto_increment
    
protected $_rowClass 'pfaLogMsg';  // for rows, return objects of that type
    
protected $_rowSetClass  "";       // for a set of rows, use that class (had no usage for this yet).
    
protected $_referenceMap = Array(    // foreign keys for cascading write operations
        
'Domain' => Array(
            
'columns'       => 'domain',
            
'refTableClass' => 'pfaDomains',
            
'refColumns'    => 'domain',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
)
    );
    
// protected $_columns = Array(
    //   'id'        => Array( 'bigint(20)',   '',                 '' ),
    //   'timestamp' => Array( 'datetime',     '',                 '' ),
    //   'username'  => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'domain'    => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'action'    => Array( 'varchar(255)', 'utf8_general_ci',  '' ),
    //   'data'      => Array( 'varchar(255)', 'utf8_general_ci',  '' )
    // );
}
class 
pfaLogMsg extends Zend_Db_Table_Row_Abstract {
}


class 
pfaMailboxes extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.mailbox'// database.tablename
    
protected $_primary  'uid';          // primary key, array if combined
    
protected $_sequence true;           // primary key is auto_increment
    
protected $_rowClass 'pfaMailbox';   // for rows, return objects of that type
    
protected $_rowSetClass  "";         // for a set of rows, use that class (had no usage for this yet).
    
protected $_referenceMap = Array(      // foreign keys for cascading write operations
        
'Domain' => Array(
            
'columns'       => 'domain',
            
'refTableClass' => 'pfaDomains',
            
'refColumns'    => 'domain',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
)
    );
    
// protected $_columns = Array(
    //   'uid'       => Array( 'u_int(10)',    '',                 '' ),
    //   'username'  => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'password'  => Array( 'varchar(255)', 'utf8_general_ci',  '' ),
    //   'name'      => Array( 'varchar(255)', 'utf8_general_ci',  '' ),
    //   'maildir'   => Array( 'varchar(255)', 'utf8_general_ci',  '' ),
    //   'quota'     => Array( 'bigint(20)',   '',                 '0' ),
    //   'domain'    => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'created'   => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'modified'  => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'active'    => Array( 'tinyint(1)',   '',                 '1' )
    // );
}
class 
pfaMailbox extends Zend_Db_Table_Row_Abstract {
}


class 
pfaVacations extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.vacation'// database.tablename
    
protected $_primary  'email';         // primary key, array if combined
    
protected $_sequence false;           // primary key is auto_increment
    
protected $_rowClass 'pfaVacation';   // for rows, return objects of that type
    
protected $_rowSetClass  "";          // for a set of rows, use that class (had no usage for this yet).
    
protected $_referenceMap = Array(       // foreign keys for cascading write operations
        
'Mailbox' => Array(
            
'columns'       => 'email',
            
'refTableClass' => 'pfaMailboxes',
            
'refColumns'    => 'username',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
),
        
'Domain' => Array(
            
'columns'       => 'domain',
            
'refTableClass' => 'pfaDomains',
            
'refColumns'    => 'domain',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
)
    );
    
// protected $_columns = Array(
    //   'email'     => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'subject'   => Array( 'varchar(255)', 'utf8_general_ci',  '' ),
    //   'body'      => Array( 'text',         'utf8_general_ci',  '' ),
    //   'cache'     => Array( 'text',         'utf8_general_ci',  '' ),
    //   'domain'    => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'created'   => Array( 'datetime',     '',                 '0000-00-00 00:00:00' ),
    //   'active'    => Array( 'tinyint(1)',   '',                 '1' )
    // );
}
class 
pfaVaction extends Zend_Db_Table_Row_Abstract {
}


class 
pfaVacationNotifications extends Zend_Db_Table_Abstract {
    protected 
$_name     'mail.vacation_notification'// database.tablename
    
protected $_primary  = Array(                        // primary key, array if combined
        
'on_vacation''notified'
    
); 
    protected 
$_sequence false;                        // primary key is auto_increment
    
protected $_rowClass 'pfaVacationNotification';    // for rows, return objects of that type
    
protected $_rowSetClass  "";                       // for a set of rows, use that class (had no usage for this yet).
    
protected $_referenceMap = Array(                    // foreign keys for cascading write operations
        
'Vacation' => Array(
            
'columns'       => 'on_vacation',
            
'refTableClass' => 'pfaVacations',
            
'refColumns'    => 'email',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
),
        
'Mailbox' => Array(
            
'columns'       => 'on_vacation',
            
'refTableClass' => 'pfaMailboxes',
            
'refColumns'    => 'username',
            
// 'onDelete'      => self::CASCADE, // self::RESTRICT,
            // 'onUpdate'      => self::CASCADE, // self::RESTRICT
        
)
    );
    
// protected $_columns = Array(
    //   'on_vacation' => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'notified'    => Array( 'varchar(255)', 'ascii_general_ci', '' ),
    //   'notified_at' => Array( 'timestamp',    '',                 CURRENT_TIMESTAMP )
    // );
}
class 
pfaVacationNotification extends Zend_Db_Table_Row_Abstract {
}
?>