@sync-in/server
Version:
The secure, open-source platform for file storage, sharing, collaboration, and sync
73 lines (72 loc) • 2.8 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
});
Object.defineProperty(exports, "spacesMembers", {
enumerable: true,
get: function() {
return spacesMembers;
}
});
const _drizzleorm = require("drizzle-orm");
const _mysqlcore = require("drizzle-orm/mysql-core");
const _linksschema = require("../../links/schemas/links.schema");
const _groupsschema = require("../../users/schemas/groups.schema");
const _usersschema = require("../../users/schemas/users.schema");
const _spacesschema = require("./spaces.schema");
const spacesMembers = (0, _mysqlcore.mysqlTable)('spaces_members', {
id: (0, _mysqlcore.bigint)('id', {
mode: 'number',
unsigned: true
}).autoincrement().primaryKey(),
spaceId: (0, _mysqlcore.bigint)('spaceId', {
mode: 'number',
unsigned: true
}).references(()=>_spacesschema.spaces.id, {
onDelete: 'cascade'
}).notNull(),
userId: (0, _mysqlcore.bigint)('userId', {
mode: 'number',
unsigned: true
}).references(()=>_usersschema.users.id, {
onDelete: 'cascade'
}),
groupId: (0, _mysqlcore.bigint)('groupId', {
mode: 'number',
unsigned: true
}).references(()=>_groupsschema.groups.id, {
onDelete: 'cascade'
}),
linkId: (0, _mysqlcore.bigint)('linkId', {
mode: 'number',
unsigned: true
}).references(()=>_linksschema.links.id, {
onDelete: 'cascade'
}),
role: (0, _mysqlcore.tinyint)('role', {
unsigned: true
}).default(0).notNull(),
permissions: (0, _mysqlcore.varchar)('permissions', {
length: 32
}).default(''),
createdAt: (0, _mysqlcore.datetime)('createdAt', {
mode: 'date'
}).default((0, _drizzleorm.sql)`CURRENT_TIMESTAMP`).notNull(),
modifiedAt: (0, _mysqlcore.datetime)('modifiedAt', {
mode: 'date'
}).default((0, _drizzleorm.sql)`CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP`)
}, (table)=>[
(0, _mysqlcore.unique)('space_user_uniq').on(table.spaceId, table.userId),
(0, _mysqlcore.unique)('space_group_uniq').on(table.spaceId, table.groupId),
(0, _mysqlcore.unique)('space_link_uniq').on(table.spaceId, table.linkId),
(0, _mysqlcore.index)('space_idx').on(table.spaceId),
(0, _mysqlcore.index)('user_idx').on(table.userId),
(0, _mysqlcore.index)('group_idx').on(table.groupId),
(0, _mysqlcore.index)('link_idx').on(table.linkId),
(0, _mysqlcore.index)('role_idx').on(table.role)
]);
//# sourceMappingURL=spaces-members.schema.js.map