Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions src/main/kotlin/com/flo/nem12/config/DatabaseConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ object DatabaseConfig {
*/
const val DEFAULT_BATCH_SIZE = 50

/**
* SQLite meter_readings table schema
*/
const val CREATE_TABLE_SQL = """
CREATE TABLE IF NOT EXISTS meter_readings (
id TEXT PRIMARY KEY,
Expand All @@ -22,22 +19,13 @@ object DatabaseConfig {
)
"""

/**
* Insert statement with conflict handling (IGNORE duplicates)
*/
const val INSERT_SQL = """
INSERT OR IGNORE INTO meter_readings (id, nmi, timestamp, consumption)
VALUES (?, ?, ?, ?)
"""

/**
* Timestamp format used in database
*/
const val TIMESTAMP_FORMAT = "yyyy-MM-dd HH:mm:ss"

/**
* SQLite failed_readings table schema
*/
const val CREATE_FAILED_READINGS_TABLE_SQL = """
CREATE TABLE IF NOT EXISTS failed_readings (
id TEXT PRIMARY KEY,
Expand All @@ -50,9 +38,6 @@ object DatabaseConfig {
)
"""

/**
* Insert statement for failed readings
*/
const val INSERT_FAILED_READING_SQL = """
INSERT INTO failed_readings (id, line_number, nmi, interval_index, raw_value, failure_reason, timestamp)
VALUES (?, ?, ?, ?, ?, ?, ?)
Expand Down
49 changes: 0 additions & 49 deletions src/main/kotlin/com/flo/nem12/util/DateTimeValidator.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,6 @@ object DateTimeValidator {
*/
private val ISO8601_DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmm")

/**
* ISO8601 Date format: YYYYMMDD (8 characters)
* Example: 20050301 = 2005-03-01
*/
private val ISO8601_DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd")

/**
* Validates ISO8601 DateTime format (12 characters: YYYYMMDDHHmm)
*
Expand All @@ -37,47 +31,4 @@ object DateTimeValidator {
false
}
}

/**
* Validates ISO8601 Date format (8 characters: YYYYMMDD)
*
* @param dateStr Date string to validate
* @return true if valid, false otherwise
*/
fun isValidISO8601Date(dateStr: String): Boolean {
if (dateStr.length != 8) return false
if (!dateStr.all { it.isDigit() }) return false

return try {
ISO8601_DATE_FORMATTER.parse(dateStr)
true
} catch (e: DateTimeParseException) {
false
}
}

/**
* Parses ISO8601 DateTime string to LocalDateTime
*
* @param dateTimeStr DateTime string in YYYYMMDDHHmm format
* @return LocalDateTime object
* @throws DateTimeParseException if format is invalid
*/
fun parseISO8601DateTime(dateTimeStr: String): LocalDateTime {
require(dateTimeStr.length == 12) { "DateTime must be 12 characters (YYYYMMDDHHmm)" }
return LocalDateTime.parse(dateTimeStr, ISO8601_DATETIME_FORMATTER)
}

/**
* Parses ISO8601 Date string
*
* @param dateStr Date string in YYYYMMDD format
* @return Formatted date string
* @throws DateTimeParseException if format is invalid
*/
fun parseISO8601Date(dateStr: String): String {
require(dateStr.length == 8) { "Date must be 8 characters (YYYYMMDD)" }
ISO8601_DATE_FORMATTER.parse(dateStr)
return dateStr
}
}