import splitLyrics from '../edit2025/lyrics/splitLyrics';
import { AlignedLyric } from '../edit2025/types';
import { BeatAlignedLyric } from './types';

export default function splitBeatAlignedLyrics(
  alignedLyrics: BeatAlignedLyric[],
  startBeats: number,
  endBeats: number
) {
  return splitLyrics(
    alignedLyrics.map((l) => {
      if (l.timing?.type === 'point')
        return { ...l, timing: { ...l.timing, seconds: l.timing.beats } };
      if (l.timing?.type === 'range')
        return {
          ...l,
          timing: {
            ...l.timing,
            startSeconds: l.timing.startBeats,
            endSeconds: l.timing.endBeats,
          },
        };
      return l;
    }) as AlignedLyric[],
    startBeats,
    endBeats
  ).map(
    (list) =>
      list.map((l: any) => {
        if (l.timing?.type === 'point') {
          l.timing.beats = l.timing.seconds;
          delete l.timing.seconds;
        }
        if (l.timing?.type === 'range') {
          l.timing.startBeats = l.timing.startSeconds;
          l.timing.endBeats = l.timing.endSeconds;
          delete l.timing.startSeconds;
          delete l.timing.endSeconds;
        }
        return l;
      }) as BeatAlignedLyric[]
  );
}
