import { eq, and } from "drizzle-orm"; import { database } from "~/database/context"; import * as schema from "~/database/schema"; export type SeasonTemplateSport = typeof schema.seasonTemplateSports.$inferSelect; export type NewSeasonTemplateSport = typeof schema.seasonTemplateSports.$inferInsert; export async function addSportToTemplate( templateId: string, sportId: string ): Promise { const db = database(); const [link] = await db .insert(schema.seasonTemplateSports) .values({ templateId, sportId, }) .returning(); return link; } export async function addMultipleSportsToTemplate( data: NewSeasonTemplateSport[] ): Promise { const db = database(); return await db .insert(schema.seasonTemplateSports) .values(data) .returning(); } export async function removeSportFromTemplate( templateId: string, sportId: string ): Promise { const db = database(); await db .delete(schema.seasonTemplateSports) .where( and( eq(schema.seasonTemplateSports.templateId, templateId), eq(schema.seasonTemplateSports.sportId, sportId) ) ); } export async function findSeasonTemplateSportsByTemplateId( templateId: string ): Promise { const db = database(); return await db.query.seasonTemplateSports.findMany({ where: eq(schema.seasonTemplateSports.templateId, templateId), with: { sport: true, }, }); } export async function findSeasonTemplateSportsBySportId( sportId: string ): Promise { const db = database(); return await db.query.seasonTemplateSports.findMany({ where: eq(schema.seasonTemplateSports.sportId, sportId), with: { template: true, }, }); } export async function deleteSeasonTemplateSport(id: string): Promise { const db = database(); await db.delete(schema.seasonTemplateSports).where(eq(schema.seasonTemplateSports.id, id)); }