2weekmail/api/db/models/DomainAdmin.js
2025-03-19 19:56:57 -05:00

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;