import { computePermitWarnings } from '@/lib/domain/warnings'

export type DemoMeasure = 'length' | 'width' | 'height' | 'weight'
export type DemoDimensions = Record<DemoMeasure, number | null>

export const DEMO_TRIP_DIMENSIONS: DemoDimensions = { length: 936, width: 150, height: 182, weight: 92_000 }
export const DEMO_SMALL_PERMIT: DemoDimensions = { length: 936, width: 144, height: 180, weight: 90_000 }
export const DEMO_MATCHING_PERMIT: DemoDimensions = { ...DEMO_TRIP_DIMENSIONS }

export function demoDimensionWarnings(permit: DemoDimensions) {
  return computePermitWarnings(
    {
      load_length_in: 600, load_width_in: 150, load_height_in: 162, load_weight_lbs: 48_000,
      overall_length_in: DEMO_TRIP_DIMENSIONS.length, overall_width_in: DEMO_TRIP_DIMENSIONS.width,
      overall_height_in: DEMO_TRIP_DIMENSIONS.height, overall_weight_lbs: DEMO_TRIP_DIMENSIONS.weight,
    },
    {
      id: 'demo-ga-permit', state_code: 'GA',
      permit_length_in: permit.length, permit_width_in: permit.width,
      permit_height_in: permit.height, permit_weight_lbs: permit.weight,
      effective_date: null, expiration_date: null,
    },
  ).filter((warning) => warning.kind === 'dimension_mismatch')
}
