A decentralized music tracking and discovery platform built on AT Protocol 馃幍
at main 27 lines 850 B view raw
1import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm"; 2import { sqliteTable, integer, text, unique } from "drizzle-orm/sqlite-core"; 3import tracks from "./tracks"; 4import users from "./users"; 5 6const lovedTracks = sqliteTable( 7 "loved_tracks", 8 { 9 id: text("id").primaryKey().notNull(), 10 userId: text("user_id") 11 .notNull() 12 .references(() => users.id), 13 trackId: text("track_id") 14 .notNull() 15 .references(() => tracks.id), 16 uri: text("uri").unique(), 17 createdAt: integer("created_at") 18 .notNull() 19 .default(sql`(unixepoch())`), 20 }, 21 (t) => [unique("loved_tracks_unique_index").on(t.userId, t.trackId)], 22); 23 24export type SelectLovedTrack = InferSelectModel<typeof lovedTracks>; 25export type InsertLovedTrack = InferInsertModel<typeof lovedTracks>; 26 27export default lovedTracks;