import { Router, Response } from 'express';
import { authenticate } from '../middleware/auth';
import { requireRole } from '../middleware/requireRole';
import { validate } from '../middleware/validate';
import { UpdateShopSchema } from '@nobel/shared';
import prisma from '../lib/prisma';

const router = Router();
router.use(authenticate, requireRole('admin'));

router.get('/', async (_req, res: Response) => {
  const shop = await prisma.shop.findFirst();
  res.json(shop || {});
});

router.patch('/', validate(UpdateShopSchema), async (req, res: Response) => {
  const existing = await prisma.shop.findFirst();
  const shop = existing
    ? await prisma.shop.update({ where: { id: existing.id }, data: req.body })
    : await prisma.shop.create({ data: { id: 'shop-main', name: 'Nobel Auto Services', address: '', phone: '', email: '', ...req.body } });
  res.json(shop);
});

export default router;
