/**
 * Time format constants used across the application
 * Centralized time-related constants for validation, formatting, and calculations
 */
export const TIME_CONSTANTS = {
  /** Minimum hour in 24-hour format (0 = midnight) */
  MIN_HOUR_24: 0 as number,

  /** Maximum hour in 24-hour format (23 = 11 PM) */
  MAX_HOUR_24: 23 as number,

  /** Minimum hour in 12-hour format (1 AM) */
  MIN_HOUR_12: 1 as number,

  /** Maximum hour in 12-hour format (12 PM/AM) */
  MAX_HOUR_12: 12 as number,

  /** Hour value for AM/PM conversion (12 noon/midnight) */
  MERIDIEM_12_HOUR: 12 as number,

  /** Minimum minute value (0) */
  MIN_MINUTE: 0 as number,

  /** Maximum minute value (59) */
  MAX_MINUTE: 59 as number,

  /** Number of hours in a day (24) */
  MIN_HOURS_IN_DAY: 24 as number,

  /** Number of minutes per hour (60) */
  MINUTES_PER_HOUR: 60 as number,

  /** Maximum time in minutes since midnight (23:59 = 1439 minutes) */
  MAX_TIME_IN_MINUTES: (23 * 60 + 59) as number,
} as const

/**
 * Type-safe access to TIME_CONSTANTS
 */
export type TimeConstants = typeof TIME_CONSTANTS
