const CompanyStampService = require('../../services/CompanyStampService'); const { logger } = require('../../middleware/logger'); exports.upload = async (req, res) => { try { const { base64, mimeType, label, activate } = req.body || {}; if (!base64) return res.status(400).json({ error: 'Missing base64' }); const stamp = await CompanyStampService.uploadStamp({ user: req.user, base64, mimeType, label, activate: !!activate }); res.status(201).json(stamp); } catch (e) { if (e.code === 'PRIMARY_STAMP_EXISTS') { return res.status(409).json({ error: e.message, existing: e.existing ? { id: e.existing.id, mime_type: e.existing.mime_type, label: e.existing.label, created_at: e.existing.created_at, is_active: e.existing.is_active, previewDataUri: `data:${e.existing.mime_type};base64,${e.existing.image_base64}` } : null }); } logger.error('CompanyStampController.upload:error', e.message); res.status(400).json({ error: e.message }); } }; exports.listMine = async (req, res) => { try { const list = await CompanyStampService.listCompanyStamps(req.user); res.json(list); } catch (e) { res.status(403).json({ error: e.message }); } }; exports.activeMine = async (req, res) => { try { const stamp = await CompanyStampService.getMyActive(req.user); res.json(stamp || null); } catch (e) { res.status(403).json({ error: e.message }); } }; exports.activate = async (req, res) => { try { const updated = await CompanyStampService.activateStamp(req.params.id, req.user); res.json(updated); } catch (e) { res.status(e.message === 'Not found' ? 404 : 403).json({ error: e.message }); } }; exports.delete = async (req, res) => { try { const ok = await CompanyStampService.deleteStamp(req.params.id, req.user); if (!ok) return res.status(404).json({ error: 'Not found' }); res.status(204).end(); } catch (e) { res.status(403).json({ error: e.message }); } };