using CommunityToolkit.Mvvm.ComponentModel;
namespace HC_APTBS.Models
{
///
/// A named EEPROM unlock password. Persisted in
/// %UserProfile%\.HC_APTBS\config\eeprom_passwords.xml and managed by
/// the Developer Tools page's password library.
///
/// Applying a password sends the KWP unlock packet
/// [0x18 0x00 Zone KeyHi KeyLo] over the persistent K-Line session.
/// Keys vary across pump variants, so users typically include the variant
/// in to disambiguate.
///
public sealed partial class EepromPassword : ObservableObject
{
/// Display name shown in the password list (e.g. "Bosch v2 — Zone 0").
[ObservableProperty] private string _name = string.Empty;
/// EEPROM zone identifier (typically 0–3 plus 8 for the magic zone).
[ObservableProperty] private byte _zone;
/// 16-bit unlock key. Big-endian on the wire (KeyHi then KeyLo).
[ObservableProperty] private ushort _key;
}
}