<UserStory> 1957: Model Refactoring </UserStory>
UserStory #1957
<Changes>
1. Added SerializedRecords.h dependency and forward declaration for SerializedInventoryItem
to support fixed-size record storage.
2. Replaced CSV-based serialization in InventoryItem with serialize() method returning
SerializedInventoryItem structure.
3. Replaced CSV-based deserialization logic with deserialize() method that reconstructs
InventoryItem directly from SerializedInventoryItem record.
4. Removed legacy CSV parsing, header generation, and exception handling tied to string-based
serialization.
5. Updated InventoryItem class interface in InventoryItem.h to use SerializedInventoryItem
types instead of std::string serialization APIs.
</Changes>
<Test>
N/A
</Test>
<Review>
Sreeja Reghukumar
</Review>
- Add serialize/deserialize support for core models
- Add file-based load/save functions in management services
- Introduce FileManager, Config, Utility and helper utilities
- Persist observer IDs for notification services
- Resolve object relationships during load (services, bookings, invoices, job cards)
- Add controller-level loadSystemData/saveSystemData
- Load data at app startup and save on shutdown
<Changes>
1. Added State enum with ACTIVE and INACTIVE values in Enums.h.
2. Added state member, getter, and setter in User, Service, InventoryItem, and ComboPackage models.
3. Updated constructors to initialize model objects with ACTIVE state by default.
4. Added state string conversion helper functions in Enums.h.
5. Added default return values in Controller getter methods to complete stub implementations.
6. Added basic menu loop implementation in CustomerMenu and TechnicianMenu for handling user input.
</Changes>