55 lines
1.8 KiB
JavaScript
55 lines
1.8 KiB
JavaScript
const BaseModel = require('./BaseModel');
|
|
const { Model } = require('objection');
|
|
|
|
|
|
/**
|
|
* CREATE TABLE `admin` (
|
|
`username` varchar(255) NOT NULL,
|
|
`password` varchar(255) NOT NULL,
|
|
`created` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
|
`modified` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
|
`active` tinyint(1) NOT NULL DEFAULT 1,
|
|
`superadmin` tinyint(1) NOT NULL DEFAULT 0,
|
|
`phone` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
|
|
`email_other` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
|
|
`token` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '',
|
|
`token_validity` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
|
|
PRIMARY KEY (`username`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci COMMENT='Postfix Admin - Virtual Admins'
|
|
*/
|
|
|
|
class Admin extends BaseModel {
|
|
static get tableName() {
|
|
return 'admin';
|
|
}
|
|
|
|
static get idColumn() {
|
|
return 'username';
|
|
}
|
|
|
|
static get jsonSchema() {
|
|
return {
|
|
type: 'object',
|
|
required: ['username', 'password'],
|
|
|
|
properties: {
|
|
username: { type: 'string', minLength: 1, maxLength: 255 },
|
|
password: { type: 'string', minLength: 1, maxLength: 255 },
|
|
created: { type: 'string', format: 'date-time' },
|
|
modified: { type: 'string', format: 'date-time' },
|
|
active: { type: 'integer', default: 1 },
|
|
superadmin: { type: 'integer', default: 0 },
|
|
phone: { type: 'string', maxLength: 30 },
|
|
email_other: { type: 'string', maxLength: 255 },
|
|
token: { type: 'string', maxLength: 255 },
|
|
token_validity: { type: 'string', format: 'date-time' },
|
|
}
|
|
};
|
|
}
|
|
|
|
static get relationMappings() {
|
|
return {};
|
|
}
|
|
}
|
|
|
|
module.exports = Admin; |