/**
 * 화면 임베딩 및 데이터 전달 시스템 라우트
 */

import express from "express";
import {
  // 화면 임베딩
  getScreenEmbeddings,
  getScreenEmbeddingById,
  createScreenEmbedding,
  updateScreenEmbedding,
  deleteScreenEmbedding,
  // 데이터 전달
  getScreenDataTransfer,
  createScreenDataTransfer,
  updateScreenDataTransfer,
  deleteScreenDataTransfer,
  // 분할 패널
  getScreenSplitPanel,
  createScreenSplitPanel,
  updateScreenSplitPanel,
  deleteScreenSplitPanel,
} from "../controllers/screenEmbeddingController";
import { authenticateToken } from "../middleware/authMiddleware";

const router = express.Router();

// ============================================
// 화면 임베딩 라우트
// ============================================

// 화면 임베딩 목록 조회
router.get("/screen-embedding", authenticateToken, getScreenEmbeddings);

// 화면 임베딩 상세 조회
router.get("/screen-embedding/:id", authenticateToken, getScreenEmbeddingById);

// 화면 임베딩 생성
router.post("/screen-embedding", authenticateToken, createScreenEmbedding);

// 화면 임베딩 수정
router.put("/screen-embedding/:id", authenticateToken, updateScreenEmbedding);

// 화면 임베딩 삭제
router.delete("/screen-embedding/:id", authenticateToken, deleteScreenEmbedding);

// ============================================
// 데이터 전달 라우트
// ============================================

// 데이터 전달 설정 조회
router.get("/screen-data-transfer", authenticateToken, getScreenDataTransfer);

// 데이터 전달 설정 생성
router.post("/screen-data-transfer", authenticateToken, createScreenDataTransfer);

// 데이터 전달 설정 수정
router.put("/screen-data-transfer/:id", authenticateToken, updateScreenDataTransfer);

// 데이터 전달 설정 삭제
router.delete("/screen-data-transfer/:id", authenticateToken, deleteScreenDataTransfer);

// ============================================
// 분할 패널 라우트
// ============================================

// 분할 패널 설정 조회
router.get("/screen-split-panel/:screenId", authenticateToken, getScreenSplitPanel);

// 분할 패널 설정 생성
router.post("/screen-split-panel", authenticateToken, createScreenSplitPanel);

// 분할 패널 설정 수정
router.put("/screen-split-panel/:id", authenticateToken, updateScreenSplitPanel);

// 분할 패널 설정 삭제
router.delete("/screen-split-panel/:id", authenticateToken, deleteScreenSplitPanel);

export default router;

