import { prisma } from "@/lib/db"; import { RepoInputFindUserByEmail, RepoInputFindUserById, RepoInputFindUserByUsername, RepoOutputUserProfile } from "./auth-repository-dto"; /** * Find user by username */ export async function repoFindUserByUsername(dto: RepoInputFindUserByUsername): Promise { const user = await prisma.user.findUnique({ where: { username: dto.username }, select: { id: true, email: true, emailVerified: true, username: true, displayUsername: true, image: true, createdAt: true, updatedAt: true, } }); return user; } /** * Find user by ID */ export async function repoFindUserById(dto: RepoInputFindUserById): Promise { const user = await prisma.user.findUnique({ where: { id: dto.id }, select: { id: true, email: true, emailVerified: true, username: true, displayUsername: true, image: true, createdAt: true, updatedAt: true, } }); return user; } /** * Find user by email */ export async function repoFindUserByEmail(dto: RepoInputFindUserByEmail): Promise { const user = await prisma.user.findUnique({ where: { email: dto.email }, select: { id: true, email: true, emailVerified: true, username: true, displayUsername: true, image: true, createdAt: true, updatedAt: true, } }); return user; }