import prisma from '../config/db.js';
import type { Pagination } from '../utils/pagination.js';

// Table definitions live in prisma/schema.prisma; database queries live here.
// Users are only ever created through Firebase sign-in (auth.model.ts) —
// this is a read-only directory of the app's provisioned users.
export function getUsers({ skip, take }: Pick<Pagination, 'skip' | 'take'>) {
  return prisma.user.findMany({
    orderBy: { id: 'desc' },
    skip,
    take,
    include: { role: true },
  });
}

export function countUsers() {
  return prisma.user.count();
}

export function updateUserRole(id: number, roleId: number) {
  return prisma.user.update({ where: { id }, data: { roleId }, include: { role: true } });
}

export function updateUserOrganization(id: number, organizationId: number) {
  return prisma.user.update({ where: { id }, data: { organizationId }, include: { organization: true } });
}
