This commit is contained in:
35
src/db/schema/teamMember.ts
Normal file
35
src/db/schema/teamMember.ts
Normal file
@ -0,0 +1,35 @@
|
||||
import { int, mysqlTable } from 'drizzle-orm/mysql-core';
|
||||
import { user } from './user.ts';
|
||||
import { team } from './team.ts';
|
||||
import type { MySql2Database } from 'drizzle-orm/mysql2';
|
||||
import { eq } from 'drizzle-orm';
|
||||
|
||||
type Database = MySql2Database<{ teamMember: typeof teamMember }>;
|
||||
|
||||
export const teamMember = mysqlTable('team_member', {
|
||||
teamId: int('team_id')
|
||||
.notNull()
|
||||
.references(() => team.id),
|
||||
userId: int('user_id')
|
||||
.notNull()
|
||||
.references(() => user.id)
|
||||
});
|
||||
|
||||
export type AddTeamMemberReq = {
|
||||
teamId: number;
|
||||
userId: number;
|
||||
};
|
||||
|
||||
export type DeleteTeamMemberByTeamIdReq = {
|
||||
teamId: number;
|
||||
};
|
||||
|
||||
export async function addTeamMember(db: Database, values: AddTeamMemberReq) {
|
||||
const teamMemberIds = await db.insert(teamMember).values(values).$returningId();
|
||||
|
||||
return teamMemberIds[0];
|
||||
}
|
||||
|
||||
export async function deleteTeamMemberByTeamId(db: Database, values: DeleteTeamMemberByTeamIdReq) {
|
||||
await db.delete(teamMember).where(eq(teamMember.teamId, values.teamId));
|
||||
}
|
Reference in New Issue
Block a user