@rocksky/cli
Version:
Command-line interface for Rocksky – scrobble tracks, view stats, and manage your listening history
28 lines (24 loc) • 850 B
text/typescript
import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm";
import { sqliteTable, integer, text, unique } from "drizzle-orm/sqlite-core";
import tracks from "./tracks";
import users from "./users";
const lovedTracks = sqliteTable(
"loved_tracks",
{
id: text("id").primaryKey().notNull(),
userId: text("user_id")
.notNull()
.references(() => users.id),
trackId: text("track_id")
.notNull()
.references(() => tracks.id),
uri: text("uri").unique(),
createdAt: integer("created_at")
.notNull()
.default(sql`(unixepoch())`),
},
(t) => [unique("loved_tracks_unique_index").on(t.userId, t.trackId)],
);
export type SelectLovedTrack = InferSelectModel<typeof lovedTracks>;
export type InsertLovedTrack = InferInsertModel<typeof lovedTracks>;
export default lovedTracks;