import sanitizeNumber from '@/utils/sanitizeNumber';
import snap from '@/utils/snap';

import { ExactSecondsRange } from '../types';

export default function snapExactSecondsRange(
  range: ExactSecondsRange,
  forceDuration?: number
): ExactSecondsRange {
  const newStartSeconds = Math.max(
    0,
    snap(range.startSeconds, 1 / 25, 'floor')
  );
  const newEndSeconds = forceDuration
    ? newStartSeconds + forceDuration
    : snap(range.endSeconds, 1 / 25, 'ceil');

  return {
    type: 'exact-seconds-range',
    startSeconds: sanitizeNumber(newStartSeconds),
    endSeconds: sanitizeNumber(newEndSeconds),
  };
}
