From 51c67c49ae83e38928c0e568d87f1e7eca3a3617 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 | 6 ++++++
api/src/dooris_api/models.py | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/api/src/dooris_api/app.py b/api/src/dooris_api/app.py
index 9be8164..f239fa5 100644
--- a/api/src/dooris_api/app.py
+++ b/api/src/dooris_api/app.py
@@ -233,11 +233,17 @@ async def list_locks(ccujack: deps.CCUJackClient) -> List[models.Lock]:
case "UNREACH":
status_data["is_unreachable"] = value.v
+ main_lock = app_config.get().main_lock or ""
+ is_main_lock = (
+ i_lock.identifier.lower() == main_lock.lower()
+ or i_lock.title.lower() == 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