@sync-in/server
Version:
The secure, open-source platform for file storage, sharing, collaboration, and sync
57 lines (56 loc) • 2.19 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 comments () {
return comments;
},
get fileHasCommentsSubquerySQL () {
return fileHasCommentsSubquerySQL;
}
});
const _drizzleorm = require("drizzle-orm");
const _mysqlcore = require("drizzle-orm/mysql-core");
const _filesschema = require("../../files/schemas/files.schema");
const _usersschema = require("../../users/schemas/users.schema");
const comments = (0, _mysqlcore.mysqlTable)('comments', {
id: (0, _mysqlcore.bigint)('id', {
mode: 'number',
unsigned: true
}).autoincrement().primaryKey(),
userId: (0, _mysqlcore.bigint)('userId', {
mode: 'number',
unsigned: true
}).references(()=>_usersschema.users.id, {
onDelete: 'cascade'
}).notNull(),
fileId: (0, _mysqlcore.bigint)('fileId', {
mode: 'number',
unsigned: true
}).references(()=>_filesschema.files.id, {
onDelete: 'cascade'
}).notNull(),
content: (0, _mysqlcore.text)(),
modifiedAt: (0, _mysqlcore.datetime)('modifiedAt', {
mode: 'date'
}).default((0, _drizzleorm.sql)`CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP`),
createdAt: (0, _mysqlcore.datetime)('createdAt', {
mode: 'date'
}).default((0, _drizzleorm.sql)`CURRENT_TIMESTAMP`).notNull()
}, (table)=>[
(0, _mysqlcore.index)('user_idx').on(table.userId),
(0, _mysqlcore.index)('file_idx').on(table.fileId)
]);
const fileHasCommentsSubquerySQL = (fileId)=>(0, _drizzleorm.sql)`EXISTS(SELECT 1 FROM ${comments} WHERE ${(0, _drizzleorm.sql)`${fileId}`} IS NOT NULL AND ${(0, _drizzleorm.sql)`${comments.fileId}`} = ${(0, _drizzleorm.sql)`${fileId}`})`;
//# sourceMappingURL=comments.schema.js.map