'use server'

import {Lang, Product, ProductLocale} from '@prisma/client'
import internal from 'node:stream'

import {db, dbQueryLog} from '@/lib/db/prisma/client'

export const getProductBySlug = async (data: {
	slug: string
	lang: string
}): Promise<ProductLocale | null> => {
	return db.productLocale.findFirst({
		where: {
			slug: data.slug,
			lang: data.lang as Lang
		}
	})
}

export const getProductById = async (id: unknown): Promise<Product | null> => {
	return db.product.findUnique({
		where: {id: id as number},
		include: {
			locales: {
				include: {
					meta: true
				}
			},
			toStore: true
		}
	})
}

export const getProducts = async (): Promise<Product[] | null> => {
	return db.product.findMany({
		include: {
			locales: {
				omit: {
					description: true,
					content: true,
					instruction: true
				},
				include: {
					meta: true
				}
			},
			toStore: true
		}
	})
}
