import { Injectable, Logger } from '@nestjs/common';
import { CreateSettingDto } from './dto/create-setting.dto';
import { UpdateSettingDto } from './dto/update-setting.dto';
import { PrismaService } from 'src/prisma/prisma.service';

@Injectable()
export class SettingsService {
	constructor(private prisma: PrismaService) {}
	private readonly logger = new Logger(SettingsService.name);

    create(createSettingDto: CreateSettingDto) {
        const transaction = this.prisma.$transaction(async (tx) => {
			return tx.settings.create({ data: createSettingDto });
		});
		return transaction;
    }

    findAll() {
        const transaction = this.prisma.$transaction(async (tx) => {
            return tx.settings.findMany();
        });
        return transaction;
    }

    findOne(name: string) {
        const transaction = this.prisma.$transaction(async (tx) => {
            return tx.settings.findUnique({ where: { name } });
        });
        return transaction;
    }

    findOneById(id: number) {
        const transaction = this.prisma.$transaction(async (tx) => {
            return tx.settings.findUnique({ where: { id } });
        });
        return transaction;
    }

    update(id: number, updateInkDto: UpdateSettingDto) {
        const transaction = this.prisma.$transaction(async (tx) => {
            return tx.settings.update({
                where: { id },
                data: UpdateSettingDto,
            });
        });
        return transaction;
    }

    remove(id: number) {
        const transaction = this.prisma.$transaction(async (tx) => {
            return tx.settings.delete({ where: { id } });
        });
        return transaction;
    }

}