// composables/formatDateResult.ts

/**
 * Format date result combining draw_date with release_hour
 * @param drawDateRaw - Raw draw date string (e.g., "2026-06-01 00:00:00")
 * @param releaseHour - Release hour string (e.g., "09:49:00")
 * @returns Formatted date string (e.g., "Mon, 21-08-2026, 8:02 AM")
 */
export const formatDateFromRaw = (drawDateRaw: string, releaseHour: string): string => {
  if (!drawDateRaw || !releaseHour) return 'Release: --'

  try {
    const drawDateObj = new Date(drawDateRaw)
    const [hours, minutes] = releaseHour.split(':').map(Number)

    drawDateObj.setHours(hours!, minutes, 0, 0)

    const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
    const dayName = days[drawDateObj.getDay()]
    const day = drawDateObj.getDate().toString().padStart(2, '0')
    const month = (drawDateObj.getMonth() + 1).toString().padStart(2, '0')
    const year = drawDateObj.getFullYear()

    let hour = drawDateObj.getHours()
    const minute = drawDateObj.getMinutes().toString().padStart(2, '0')
    const ampm = hour >= 12 ? 'PM' : 'AM'
    hour = hour % 12 || 12

    return `${dayName}, ${day}-${month}-${year}, ${hour}:${minute} ${ampm}`
  } catch (error) {
    console.error('Error formatting date:', error)
    return `Release: ${releaseHour}`
  }
}

/**
 * Format date result (alias for formatDateFromRaw for backward compatibility)
 */
export const formatDateResult = (drawDateRaw: string, releaseHour: string): string => {
  return formatDateFromRaw(drawDateRaw, releaseHour)
}