From 8a043a3be7f4a74d0566aa64060b70b94d63b1ae Mon Sep 17 00:00:00 2001 From: Keith Herrington Date: Wed, 11 Sep 2024 20:39:52 -0700 Subject: [PATCH] Fix visitor duplication and improve PIN assignment - Prevent duplicate entries for reservations with same dates - Assign PINs to existing visitors without them - Enhance logging for better debugging - Prioritize date matching over name matching for visitors - Consistently use last 4 digits of phone numbers for PINs --- unifi_access.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/unifi_access.py b/unifi_access.py index 3422c2a..2a1627c 100644 --- a/unifi_access.py +++ b/unifi_access.py @@ -167,7 +167,10 @@ class UnifiAccessManager: ) if existing_visitor: + self.logger.debug(f"Visitor already exists for dates {check_in_date} to {check_out_date}: {existing_visitor['first_name']} {existing_visitor['last_name']}") self.changes['unchanged'].append(f"{existing_visitor['first_name']} {existing_visitor['last_name']}") + if not existing_visitor.get('pin_code') and phone_number: + self.assign_pin_to_visitor(existing_visitor['id'], phone_number[-self.pin_code_digits:]) else: start_datetime = datetime.datetime.combine(check_in_date, self.check_in_time) end_datetime = datetime.datetime.combine(check_out_date, self.check_out_time) @@ -177,6 +180,7 @@ class UnifiAccessManager: success = self.create_visitor(first_name, last_name, phone_number, start_timestamp, end_timestamp) if success: self.changes['added'].append(guest_name) + self.logger.info(f"Created new visitor: {guest_name}") else: self.logger.error(f"Failed to create visitor: {guest_name}") @@ -187,6 +191,7 @@ class UnifiAccessManager: success = self.delete_visitor(visitor["id"], is_completed) if success: self.changes['deleted'].append(f"{visitor['first_name']} {visitor['last_name']}") + self.logger.info(f"Deleted visitor: {visitor['first_name']} {visitor['last_name']}") else: self.logger.error(f"Failed to delete visitor: {visitor['first_name']} {visitor['last_name']}")