feat: setup card assignees

This commit is contained in:
Henry
2024-03-05 22:47:19 +00:00
parent 99f7730185
commit d1dc5ec2be
6 changed files with 1141 additions and 2 deletions

View File

@@ -78,6 +78,26 @@ export const boardRouter = createTRPCRouter({
}
}
}
},
members: {
columns: {
workspaceMemberId: false,
cardId: false,
},
with: {
member: {
columns: {
publicId: true,
},
with: {
user: {
columns: {
name: true
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,8 @@
CREATE TABLE `card_workspace_members` (
`cardId` bigint NOT NULL,
`workspaceMemberId` bigint NOT NULL,
CONSTRAINT `card_workspace_members_cardId_workspaceMemberId` PRIMARY KEY(`cardId`,`workspaceMemberId`)
);
--> statement-breakpoint
-- ALTER TABLE `card_workspace_members` ADD CONSTRAINT `card_workspace_members_cardId_card_id_fk` FOREIGN KEY (`cardId`) REFERENCES `card`(`id`) ON DELETE no action ON UPDATE no action;--> statement-breakpoint
-- ALTER TABLE `card_workspace_members` ADD CONSTRAINT `card_workspace_members_workspaceMemberId_workspace_members_id_fk` FOREIGN KEY (`workspaceMemberId`) REFERENCES `workspace_members`(`id`) ON DELETE no action ON UPDATE no action;

File diff suppressed because it is too large Load Diff

View File

@@ -85,6 +85,13 @@
"when": 1709542143845,
"tag": "0011_familiar_aaron_stack",
"breakpoints": true
},
{
"idx": 12,
"version": "5",
"when": 1709676468112,
"tag": "0012_powerful_gressill",
"breakpoints": true
}
]
}

View File

@@ -139,6 +139,27 @@ export const cardToLabelsRelations = relations(cardsToLabels, ({ one }) => ({
}),
}));
export const cardToWorkspaceMembers = mySqlTable(
"card_workspace_members",
{
cardId: bigint("cardId", { mode: "number" }).notNull().references(() => cards.id),
workspaceMemberId: bigint("workspaceMemberId", { mode: "number" }).notNull().references(() => workspaceMembers.id),
}, (t) => ({
pk: primaryKey(t.cardId, t.workspaceMemberId),
}),
);
export const cardToWorkspaceMembersRelations = relations(cardToWorkspaceMembers, ({ one }) => ({
card: one(cards, {
fields: [cardToWorkspaceMembers.cardId],
references: [cards.id],
}),
member: one(workspaceMembers, {
fields: [cardToWorkspaceMembers.workspaceMemberId],
references: [workspaceMembers.id],
}),
}));
export const lists = mySqlTable(
"list",
{
@@ -212,6 +233,7 @@ export const cardsRelations = relations(cards, ({ one, many }) => ({
references: [users.id],
}),
labels: many(cardsToLabels),
members: many(cardToWorkspaceMembers),
import: one(imports, {
fields: [cards.importId],
references: [imports.id],