from shared.firebase import get_db from settings.log_retention_models import LogRetentionSettings, LogRetentionSettingsUpdate COLLECTION = "admin_settings" DOC_ID = "log_retention" def get_log_retention() -> LogRetentionSettings: """Get log retention settings from Firestore. Creates defaults if not found.""" db = get_db() doc = db.collection(COLLECTION).document(DOC_ID).get() if doc.exists: return LogRetentionSettings(**doc.to_dict()) defaults = LogRetentionSettings() db.collection(COLLECTION).document(DOC_ID).set(defaults.model_dump()) return defaults def update_log_retention(data: LogRetentionSettingsUpdate) -> LogRetentionSettings: """Update log retention settings. Only provided fields are updated.""" db = get_db() doc_ref = db.collection(COLLECTION).document(DOC_ID) doc = doc_ref.get() existing = doc.to_dict() if doc.exists else LogRetentionSettings().model_dump() update_data = data.model_dump(exclude_none=True) existing.update(update_data) normalized = LogRetentionSettings(**existing) doc_ref.set(normalized.model_dump()) return normalized