import { PrismaService } from '@/prisma/prisma.service' import { Injectable } from '@nestjs/common' import { ResponseMapper } from 'common/response/response-mapper' @Injectable() export class CatalogsService { constructor(private readonly prisma: PrismaService) {} defaultSelect = { id: true, name: true, } async getGuilds() { const guilds = await this.prisma.guild.findMany({ select: this.defaultSelect, }) return ResponseMapper.list(guilds) } async getProviders() { const providers = await this.prisma.provider.findMany({ select: this.defaultSelect, }) return ResponseMapper.list(providers) } async getDevices() { const devices = await this.prisma.device.findMany({ select: this.defaultSelect, }) return ResponseMapper.list(devices) } async getDeviceBrands() { const items = await this.prisma.deviceBrand.findMany({ select: this.defaultSelect, }) return ResponseMapper.list(items) } async getMeasurements() { const items = await this.prisma.measureUnits.findMany({ select: { id: true, name: true, code: true, }, }) return ResponseMapper.list(items) } async getSKU(search: string) { const items = await this.prisma.stockKeepingUnits.findMany({ take: 100, }) const mappedItems = items.map(item => ({ ...item, fullname: `${item.code} - ${item.name}`, })) return ResponseMapper.list(mappedItems) } async getGuildGoodCategories(guild_id: string) { const items = await this.prisma.goodCategory.findMany({ where: { guild_id, }, select: this.defaultSelect, }) return ResponseMapper.list(items) } }