2025-03-19 19:56:57 -05:00

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;