56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
const BaseModel = require('./BaseModel');
|
|
const { Model } = require('objection');
|
|
|
|
/**
|
|
* CREATE TABLE `domain_admins` (
|
|
`username` varchar(255) NOT NULL,
|
|
`domain` varchar(255) NOT NULL,
|
|
`created` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
|
`active` tinyint(1) NOT NULL DEFAULT 1,
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (`id`),
|
|
KEY `username` (`username`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci COMMENT='Postfix Admin - Domain Admins'
|
|
*/
|
|
|
|
class DomainAdmin extends BaseModel {
|
|
static get tableName() {
|
|
return 'domain_admins';
|
|
}
|
|
|
|
static get idColumn() {
|
|
return 'id';
|
|
}
|
|
|
|
static get jsonSchema() {
|
|
return {
|
|
type: 'object',
|
|
required: ['username', 'domain'],
|
|
|
|
properties: {
|
|
id: { type: 'integer' },
|
|
username: { type: 'string', minLength: 1, maxLength: 255 },
|
|
domain: { type: 'string', minLength: 1, maxLength: 255 },
|
|
created: { type: 'string', format: 'date-time' },
|
|
active: { type: 'integer', default: 1 },
|
|
}
|
|
};
|
|
}
|
|
|
|
static get relationMappings() {
|
|
const Domain = require('./Domain');
|
|
|
|
return {
|
|
mailboxes: {
|
|
relation: Model.HasManyRelation,
|
|
modelClass: Domain,
|
|
join: {
|
|
from: 'domain_admins.domain',
|
|
to: 'domain.domain'
|
|
}
|
|
}
|
|
};
|
|
}
|
|
}
|
|
|
|
module.exports = DomainAdmin; |