From 69148ebef401e4703b2a4a2bb8144f0129e853e8 Mon Sep 17 00:00:00 2001
From: lilly
Date: Tue, 11 Aug 2026 16:51:48 +0200
Subject: [PATCH] api: fix response generation with new "is_main_lock" field
---
api/src/dooris_api/app.py | 5 +++++
api/src/dooris_api/models.py | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/api/src/dooris_api/app.py b/api/src/dooris_api/app.py
index 9be8164..cabab73 100644
--- a/api/src/dooris_api/app.py
+++ b/api/src/dooris_api/app.py
@@ -233,11 +233,16 @@ async def list_locks(ccujack: deps.CCUJackClient) -> List[models.Lock]:
case "UNREACH":
status_data["is_unreachable"] = value.v
+ is_main_lock = (
+ i_lock.identifier.lower() == app_config.get().main_lock.lower()
+ or i_lock.title.lower() == app_config.get().main_lock.lower()
+ )
result.append(
models.Lock(
id=i_lock.identifier,
name=i_lock.title,
status=models.LockStatus(**status_data),
+ is_main_lock=is_main_lock,
)
)
diff --git a/api/src/dooris_api/models.py b/api/src/dooris_api/models.py
index ee95233..ae603c4 100644
--- a/api/src/dooris_api/models.py
+++ b/api/src/dooris_api/models.py
@@ -54,7 +54,6 @@ class LockStatus(BaseModel):
is_unreachable: bool
is_low_battery: bool
is_error_jammed: bool
- is_main_lock: bool
lock_target_level: Literal["locked", "unlocked", "open"]
lock_state: Literal["unknown", "locked", "unlocked"]
activity_state: Literal["unknown", "locking", "unlocking", "stable"]
@@ -63,6 +62,7 @@ class LockStatus(BaseModel):
class Lock(BaseModel):
name: str
id: str
+ is_main_lock: bool
status: LockStatus