forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
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;