@sync-in/server
Version:
The secure, open-source platform for file storage, sharing, collaboration, and sync
97 lines (96 loc) • 3.29 kB
JavaScript
/*
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
* This file is part of Sync-in | The open source file sync and share solution
* See the LICENSE file for licensing details
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: Object.getOwnPropertyDescriptor(all, name).get
});
}
_export(exports, {
get userFullNameSQL () {
return userFullNameSQL;
},
get users () {
return users;
}
});
const _drizzleorm = require("drizzle-orm");
const _mysqlcore = require("drizzle-orm/mysql-core");
const _columns = require("../../../infrastructure/database/columns");
const users = (0, _mysqlcore.mysqlTable)('users', {
id: (0, _mysqlcore.bigint)('id', {
mode: 'number',
unsigned: true
}).autoincrement().primaryKey(),
email: (0, _mysqlcore.varchar)('email', {
length: 255
}).notNull(),
login: (0, _mysqlcore.varchar)('login', {
length: 255
}).notNull(),
firstName: (0, _mysqlcore.varchar)('firstName', {
length: 255
}),
lastName: (0, _mysqlcore.varchar)('lastName', {
length: 255
}),
password: (0, _mysqlcore.varchar)('password', {
length: 255
}).notNull(),
passwordAttempts: (0, _mysqlcore.tinyint)('passwordAttempts', {
unsigned: true
}).default(0).notNull(),
role: (0, _mysqlcore.tinyint)('role', {
unsigned: true
}).default(1).notNull(),
isActive: (0, _mysqlcore.boolean)('isActive').default(true).notNull(),
secrets: (0, _columns.jsonColumn)()('secrets'),
language: (0, _mysqlcore.varchar)('language', {
length: 10
}),
permissions: (0, _mysqlcore.varchar)('permissions', {
length: 255
}).default('').notNull(),
storageUsage: (0, _mysqlcore.bigint)('storageUsage', {
mode: 'number',
unsigned: true
}).default(0),
storageQuota: (0, _mysqlcore.bigint)('storageQuota', {
mode: 'number',
unsigned: true
}),
storageIndexing: (0, _mysqlcore.boolean)('storageIndexing').default(true).notNull(),
notification: (0, _mysqlcore.tinyint)('notification', {
unsigned: true
}).default(1).notNull(),
onlineStatus: (0, _mysqlcore.tinyint)('onlineStatus', {
unsigned: true
}).default(0).notNull(),
currentIp: (0, _mysqlcore.varchar)('currentIp', {
length: 45
}),
lastIp: (0, _mysqlcore.varchar)('lastIp', {
length: 45
}),
currentAccess: (0, _mysqlcore.datetime)('currentAccess', {
mode: 'date'
}),
lastAccess: (0, _mysqlcore.datetime)('lastAccess', {
mode: 'date'
}),
createdAt: (0, _mysqlcore.datetime)('createdAt', {
mode: 'date'
}).default((0, _drizzleorm.sql)`CURRENT_TIMESTAMP`).notNull()
}, (table)=>[
(0, _mysqlcore.uniqueIndex)('email_idx').on(table.email),
(0, _mysqlcore.uniqueIndex)('login_idx').on(table.login),
(0, _mysqlcore.index)('role_idx').on(table.role)
]);
const userFullNameSQL = (user)=>(0, _drizzleorm.sql)`TRIM(CONCAT(${user.firstName}, ' ', ${user.lastName}))`;
//# sourceMappingURL=users.schema.js.map