const { Isotope, ChatMessage } = require('../models'); // 日時フォーマット関数 function formatTimestamp(dateString) { const date = new Date(dateString); const now = new Date(); // 当日の場合は時刻のみ表示 if (date.toDateString() === now.toDateString()) { return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); } else { return date.toLocaleDateString() + ' ' + date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); } } // ダッシュボードを表示 exports.showDashboard = async (req, res) => { try { const isotope = await Isotope.findOne({ where: { user_id: req.user.userId } }); const token = req.token; // 同位体が存在しない場合は同位体作成ページにリダイレクト if (!isotope) { return res.redirect('/isotope'); } // 同位体が存在する場合はチャットメッセージを取得 const messages = await ChatMessage.findAll({ where: { user_id: req.user.userId, isotope_id: isotope.id }, order: [['created_at', 'ASC']] }); // ダッシュボードにチャットを表示 res.render('dashboard', { isotope, messages, token, formatTimestamp, hideSidebar: false }); } catch (error) { console.error('ダッシュボードの表示中にエラーが発生しました:', error); res.status(500).json({ error: 'ダッシュボードの表示に失敗しました' }); } };