Add analytics tracking, overview PDF export, and charger updates

Add first launch event, share tracking for overview PDF and diagram
exports. Add SystemOverviewPDFExporter for A4 PDF generation. Update
charger model with new configuration fields and localization for all
5 languages. Refresh app icon assets and CLAUDE.md build instructions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Lange-Hegermann
2026-03-25 17:45:54 +01:00
parent 5a5e8b8fbe
commit 03878b9507
19 changed files with 1698 additions and 28 deletions

View File

@@ -11,6 +11,7 @@ struct ChargerConfiguration: Identifiable, Hashable {
var iconName: String
var colorName: String
var system: ElectricalSystem
var powerSourceType: SavedCharger.PowerSourceType
init(
id: UUID = UUID(),
@@ -21,7 +22,8 @@ struct ChargerConfiguration: Identifiable, Hashable {
maxPowerWatts: Double = 0.0,
iconName: String = "bolt.fill",
colorName: String = "orange",
system: ElectricalSystem
system: ElectricalSystem,
powerSourceType: SavedCharger.PowerSourceType = .shore
) {
self.id = id
self.name = name
@@ -32,6 +34,7 @@ struct ChargerConfiguration: Identifiable, Hashable {
self.iconName = iconName
self.colorName = colorName
self.system = system
self.powerSourceType = powerSourceType
}
init(savedCharger: SavedCharger, system: ElectricalSystem) {
@@ -44,6 +47,7 @@ struct ChargerConfiguration: Identifiable, Hashable {
self.iconName = savedCharger.iconName
self.colorName = savedCharger.colorName
self.system = system
self.powerSourceType = savedCharger.sourceType
}
var effectivePowerWatts: Double {
@@ -62,6 +66,7 @@ struct ChargerConfiguration: Identifiable, Hashable {
savedCharger.iconName = iconName
savedCharger.colorName = colorName
savedCharger.system = system
savedCharger.powerSourceType = powerSourceType.rawValue
savedCharger.timestamp = Date()
}
}