mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-29 14:45:24 +00:00
feat: rebuild workspaces as the reference plugin
This commit is contained in:
1 parent
d774df8b41
commit
f217d8db89
79 files changed
+32995
-2184
No files matched your search
@@ -1780,36 +1780,7 @@ export const fleetInventory = mysqlTable(
|
||||
);
|
||||
// --- fleets end ---
|
||||
|
||||
// --- workspaces begin ---
|
||||
export const userWorkspaces = mysqlTable(
|
||||
"user_workspaces",
|
||||
{
|
||||
id: int("id").autoincrement().primaryKey(),
|
||||
userId: varchar("user_id", { length: 255 })
|
||||
.notNull()
|
||||
.references(() => users.id, { onDelete: "cascade" }),
|
||||
name: varchar("name", { length: 255 }).notNull(),
|
||||
color: text("color"),
|
||||
icon: text("icon"),
|
||||
// "manual" | "last_session" - exactly one last_session row per user.
|
||||
kind: text("kind").notNull().default("manual"),
|
||||
isDefault: boolean("is_default")
|
||||
.notNull()
|
||||
.default(false),
|
||||
// JSON-encoded WorkspacePayload: tabs, splitMode, paneTabIds, rowSizes, rowColSizes
|
||||
payload: text("payload").notNull().default("{}"),
|
||||
syncId: varchar("sync_id", { length: 255 }).unique(),
|
||||
createdAt: varchar("created_at", { length: 255 })
|
||||
.notNull()
|
||||
.default(sql`(CURRENT_TIMESTAMP)`),
|
||||
updatedAt: varchar("updated_at", { length: 255 })
|
||||
.notNull()
|
||||
.default(sql`(CURRENT_TIMESTAMP)`),
|
||||
lastUsedAt: text("last_used_at"),
|
||||
},
|
||||
(table) => [index("idx_user_workspaces_user_id").on(table.userId)],
|
||||
);
|
||||
// --- workspaces end ---
|
||||
|
||||
|
||||
// --- sync begin ---
|
||||
// Records a delete for a synced entity type so the other side of a sync
|
||||
|
||||
Reference in new issue
Block a user