/**
 * TripsLayer 팩토리 — deck.gl/geo-layers의 TripsLayer 래퍼
 *
 * 어구 멤버 궤적 애니메이션 (fade trail) 전용.
 */
import { TripsLayer } from '@deck.gl/geo-layers';

export interface TripsData {
  id: string;
  path: [number, number][];
  timestamps: number[];
  color: [number, number, number, number];
}

/**
 * 궤적 애니메이션 레이어 생성.
 * @param id — 레이어 ID
 * @param data — MMSI별 궤적 데이터
 * @param currentTime — startTime 기준 상대 시간 (ms)
 * @param trailLength — 페이드 길이 (ms, 기본 1시간)
 */
export function createTripsLayer(
  id: string,
  data: TripsData[],
  currentTime: number,
  trailLength = 3_600_000,
) {
  return new TripsLayer<TripsData>({
    id,
    data,
    getPath: (d) => d.path,
    getTimestamps: (d) => d.timestamps,
    getColor: (d) => d.color,
    currentTime,
    fadeTrail: true,
    trailLength,
    widthMinPixels: 2,
    widthMaxPixels: 4,
    jointRounded: true,
    capRounded: true,
  });
}
