const express = require('express');
const prisma = require('../lib/prisma');
const { verifyPassword, adminSignToken, adminAuthMiddleware } = require('../lib/auth');

const router = express.Router();

// 管理员登录
router.post('/login', async (req, res) => {
  try {
    const { account, password } = req.body;
    if (!account || !password) {
      return res.status(400).json({ error: '账号和密码不能为空' });
    }

    const admin = await prisma.admin.findUnique({ where: { account } });
    if (!admin || !verifyPassword(password, admin.password)) {
      return res.status(401).json({ error: '账号或密码错误' });
    }

    const token = adminSignToken(admin.id);
    res.json({
      token,
      admin: { id: admin.id, account: admin.account },
    });
  } catch (err) {
    console.error('管理员登录失败:', err);
    res.status(500).json({ error: '登录失败' });
  }
});

// 获取当前管理员信息
router.get('/me', adminAuthMiddleware, async (req, res) => {
  try {
    const admin = await prisma.admin.findUnique({
      where: { id: req.adminId },
      select: { id: true, account: true },
    });
    if (!admin) {
      return res.status(404).json({ error: '管理员不存在' });
    }
    res.json({ admin });
  } catch (err) {
    console.error('获取管理员信息失败:', err);
    res.status(500).json({ error: '服务器错误' });
  }
});

module.exports = router;
