import { Request, Response } from 'express'; import { CreativeService } from '../../domains/Creative/CreativeService'; import { logger } from '../../utils/logger'; export class CreativeController { /** * 创建创作任务 (TTS/IMAGE/VIDEO) */ static async createTask(req: Request, res: Response) { const tenantId = req.headers['x-tenant-id'] as string; const { type, params } = req.body; if (!tenantId || !type || !params) { return res.status(400).json({ success: false, error: 'tenantId, type, and params are required' }); } try { const taskId = await CreativeService.createTask({ tenant_id: tenantId, type, params }); return res.json({ success: true, data: { taskId } }); } catch (err: any) { logger.error(`[CreativeController] Create task failed: ${err.message}`); return res.status(500).json({ success: false, error: 'Internal server error' }); } } /** * 获取任务详情 */ static async getTask(req: Request, res: Response) { const { taskId } = req.params; try { const task = await CreativeService.getTask(taskId); return res.json({ success: true, data: task }); } catch (err: any) { return res.status(500).json({ success: false, error: err.message }); } } /** * 获取素材列表 */ static async getAssets(req: Request, res: Response) { const tenantId = req.headers['x-tenant-id'] as string; const { type } = req.query; try { const assets = await CreativeService.getAssets(tenantId, type as string); return res.json({ success: true, data: assets }); } catch (err: any) { return res.status(500).json({ success: false, error: err.message }); } } }