import { eq } from 'drizzle-orm'; import { db } from '@/db/client'; import { users } from '@/db/schema'; import type { CreateUserInput, UpdateUserInput } from './users.schema'; export async function findAllUsers() { return db.select().from(users); } export async function findUserById(id: number) { const result = await db.select().from(users).where(eq(users.id, id)).limit(1); return result[0] ?? null; } export async function createUser(data: CreateUserInput) { const [created] = await db .insert(users) .values({ name: data.name, gross_salary: data.gross_salary, net_salary_override: data.net_salary_override ?? null, }) .returning(); return created; } export async function updateUser(id: number, data: UpdateUserInput) { const now = new Date().toISOString(); const [updated] = await db .update(users) .set({ ...(data.name !== undefined && { name: data.name }), ...(data.gross_salary !== undefined && { gross_salary: data.gross_salary }), // Permite setar null explicitamente (para remover o override) ...(data.net_salary_override !== undefined && { net_salary_override: data.net_salary_override, }), updated_at: now, }) .where(eq(users.id, id)) .returning(); return updated ?? null; } export async function deleteUser(id: number) { const [deleted] = await db .delete(users) .where(eq(users.id, id)) .returning(); return deleted ?? null; }