import { update } from 'lodash'
import { defineStore } from 'pinia'

export const useInspectionStore = defineStore('inspection', {
    state: () => ({
        gridOffscreen: null,                                      // 栅格图像（离屏Canvas）
        hoveredElement: null,                                     // 当前悬停的元素 {kind, index}
        animationTimeSeconds: 0,                                  // 全局动画时间戳（秒），用于脉冲动画效果
        camera: {                                                 // 相机参数
            centerX: 0,                                                // 相机中心的世界坐标 X
            centerY: 0,                                                // 相机中心的世界坐标 Y
            pixelsPerMeter: 20,                                        // 缩放：每米对应的屏幕像素数
        },
        canvasWidthPx: 0,                                         // Canvas CSS 逻辑宽度（像素）
        canvasHeightPx: 0,                                        // Canvas CSS 逻辑高度（像素）
        devicePixelRatio: 1,                                      // 设备像素比（高DPI屏幕 > 1）
    }),
    actions: {
        updateCamera(value) {
          this.camera = { ...this.camera, ...value }
        },
        updateCanvasSize(width, height) {
          this.canvasWidthPx = width
          this.canvasHeightPx = height
          this.devicePixelRatio = window.devicePixelRatio || 1
        },
        async getCanvasWH() {
            const data =  {
                canvasWidthPx: this.canvasWidthPx,
                canvasHeightPx: this.canvasHeightPx,
                devicePixelRatio: this.devicePixelRatio,
            }
            return data
        }
    }
}
)
