feat: add comment replies and liking functionality
- Introduced support for nested comment replies in both frontend and backend. - Added comment liking and unliking features, including like count and "isLiked" state tracking. - Updated database schema with `parentId` and new `comment_likes` table. - Enhanced UI for threaded comments and implemented display of like counts and reply actions. - Refactored APIs and repositories to support replies, likes, and enriched comment data.
This commit is contained in:
21
backend/src/database/schemas/comment_likes.ts
Normal file
21
backend/src/database/schemas/comment_likes.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { pgTable, primaryKey, timestamp, uuid } from "drizzle-orm/pg-core";
|
||||
import { comments } from "./comments";
|
||||
import { users } from "./users";
|
||||
|
||||
export const commentLikes = pgTable(
|
||||
"comment_likes",
|
||||
{
|
||||
commentId: uuid("comment_id")
|
||||
.notNull()
|
||||
.references(() => comments.id, { onDelete: "cascade" }),
|
||||
userId: uuid("user_id")
|
||||
.notNull()
|
||||
.references(() => users.uuid, { onDelete: "cascade" }),
|
||||
createdAt: timestamp("created_at", { withTimezone: true })
|
||||
.notNull()
|
||||
.defaultNow(),
|
||||
},
|
||||
(t) => ({
|
||||
pk: primaryKey({ columns: [t.commentId, t.userId] }),
|
||||
}),
|
||||
);
|
||||
Reference in New Issue
Block a user