import express, { Request, Response } from "express";
import { storage } from "../storage";

const router = express.Router();

// GET /api/office-contact
router.get("/", async (req: Request, res: Response): Promise<any> => {
  try {
    const userId = req.user?.id;
    if (!userId) return res.status(401).json({ message: "Unauthorized" });

    const record = await storage.getOfficeContact(userId);
    return res.status(200).json(record ?? null);
  } catch (err) {
    return res.status(500).json({ error: "Failed to fetch office contact", details: String(err) });
  }
});

// PUT /api/office-contact
router.put("/", async (req: Request, res: Response): Promise<any> => {
  try {
    const userId = req.user?.id;
    if (!userId) return res.status(401).json({ message: "Unauthorized" });

    const { officeName, receptionistName, dentistName, phoneNumber, email, fax, streetAddress, city, state, zipCode } = req.body;
    const record = await storage.upsertOfficeContact(userId, {
      officeName: officeName ?? undefined,
      receptionistName: receptionistName ?? undefined,
      dentistName: dentistName ?? undefined,
      phoneNumber: phoneNumber ?? undefined,
      email: email ?? undefined,
      fax: fax ?? undefined,
      streetAddress: streetAddress ?? undefined,
      city: city ?? undefined,
      state: state ?? undefined,
      zipCode: zipCode ?? undefined,
    });
    return res.status(200).json(record);
  } catch (err) {
    return res.status(500).json({ error: "Failed to save office contact", details: String(err) });
  }
});

export default router;
