UNPKG

@sync-in/server

Version:

The secure, open-source platform for file storage, sharing, collaboration, and sync

97 lines (96 loc) 3.29 kB
/* * 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