From 0c7ab77728b868926e437d1f8314a824ca0b530b Mon Sep 17 00:00:00 2001 From: ValueOn AG Date: Mon, 25 May 2026 15:49:50 +0200 Subject: [PATCH] fixed db poweron reference - not baseclass --- modules/datamodels/datamodelAiAudit.py | 5 +++-- modules/datamodels/datamodelAudit.py | 3 ++- modules/datamodels/datamodelBilling.py | 6 +++--- modules/datamodels/datamodelChat.py | 2 +- modules/datamodels/datamodelMessaging.py | 4 ++-- modules/datamodels/datamodelSubscription.py | 2 +- .../features/neutralization/datamodelFeatureNeutralizer.py | 4 ++-- modules/features/realEstate/datamodelFeatureRealEstate.py | 6 +++--- .../services/serviceSubscription/stripeBootstrap.py | 4 ++-- 9 files changed, 19 insertions(+), 17 deletions(-) diff --git a/modules/datamodels/datamodelAiAudit.py b/modules/datamodels/datamodelAiAudit.py index 833a175a..eabe0db6 100644 --- a/modules/datamodels/datamodelAiAudit.py +++ b/modules/datamodels/datamodelAiAudit.py @@ -9,14 +9,15 @@ for compliance, audit, and data-protection reporting. import uuid from typing import Optional -from pydantic import BaseModel, Field +from pydantic import Field +from modules.datamodels.datamodelBase import PowerOnModel from modules.shared.i18nRegistry import i18nModel from modules.shared.timeUtils import getUtcTimestamp @i18nModel("AI-Audit-Eintrag") -class AiAuditLogEntry(BaseModel): +class AiAuditLogEntry(PowerOnModel): id: str = Field( default_factory=lambda: str(uuid.uuid4()), description="Primary key", diff --git a/modules/datamodels/datamodelAudit.py b/modules/datamodels/datamodelAudit.py index 4d030fd3..51e97dae 100644 --- a/modules/datamodels/datamodelAudit.py +++ b/modules/datamodels/datamodelAudit.py @@ -19,6 +19,7 @@ from pydantic import BaseModel, Field from enum import Enum import uuid +from modules.datamodels.datamodelBase import PowerOnModel from modules.shared.timeUtils import getUtcTimestamp from modules.shared.i18nRegistry import i18nModel @@ -83,7 +84,7 @@ class AuditAction(str, Enum): @i18nModel("Audit-Log-Eintrag") -class AuditLogEntry(BaseModel): +class AuditLogEntry(PowerOnModel): """ Audit log entry for database storage. diff --git a/modules/datamodels/datamodelBilling.py b/modules/datamodels/datamodelBilling.py index d3967f12..78024ce1 100644 --- a/modules/datamodels/datamodelBilling.py +++ b/modules/datamodels/datamodelBilling.py @@ -123,7 +123,7 @@ class BillingTransaction(PowerOnModel): @i18nModel("Abrechnungseinstellungen") -class BillingSettings(BaseModel): +class BillingSettings(PowerOnModel): """Billing settings per mandate. Only PREPAY_MANDATE model.""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), @@ -186,7 +186,7 @@ class BillingSettings(BaseModel): ) -class StripeWebhookEvent(BaseModel): +class StripeWebhookEvent(PowerOnModel): """Stores processed Stripe webhook event IDs for idempotency.""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), @@ -201,7 +201,7 @@ class StripeWebhookEvent(BaseModel): @i18nModel("Nutzungsstatistik") -class UsageStatistics(BaseModel): +class UsageStatistics(PowerOnModel): """Aggregated usage statistics for quick retrieval.""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), diff --git a/modules/datamodels/datamodelChat.py b/modules/datamodels/datamodelChat.py index f846b52c..6546f6d9 100644 --- a/modules/datamodels/datamodelChat.py +++ b/modules/datamodels/datamodelChat.py @@ -319,7 +319,7 @@ class DocumentExchange(BaseModel): documents: List[str] = Field(default_factory=list, description="List of document references", json_schema_extra={"label": "Dokumente"}) @i18nModel("Aufgaben-Aktion") -class ActionItem(BaseModel): +class ActionItem(PowerOnModel): id: str = Field(..., description="Action ID", json_schema_extra={"label": "Aktions-ID"}) execMethod: str = Field(..., description="Method to execute", json_schema_extra={"label": "Methode"}) execAction: str = Field(..., description="Action to perform", json_schema_extra={"label": "Aktion"}) diff --git a/modules/datamodels/datamodelMessaging.py b/modules/datamodels/datamodelMessaging.py index 9fcb9944..904ee526 100644 --- a/modules/datamodels/datamodelMessaging.py +++ b/modules/datamodels/datamodelMessaging.py @@ -112,7 +112,7 @@ class MessagingSubscription(PowerOnModel): @i18nModel("Messaging-Registrierung") -class MessagingSubscriptionRegistration(BaseModel): +class MessagingSubscriptionRegistration(PowerOnModel): """Data model for user registrations to messaging subscriptions""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), @@ -203,7 +203,7 @@ class MessagingSubscriptionRegistration(BaseModel): @i18nModel("Messaging-Zustellung") -class MessagingDelivery(BaseModel): +class MessagingDelivery(PowerOnModel): """Data model for individual message deliveries""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), diff --git a/modules/datamodels/datamodelSubscription.py b/modules/datamodels/datamodelSubscription.py index 4196a959..c8263e37 100644 --- a/modules/datamodels/datamodelSubscription.py +++ b/modules/datamodels/datamodelSubscription.py @@ -153,7 +153,7 @@ class SubscriptionPlan(BaseModel): # ============================================================================ @i18nModel("Stripe-Planpreise") -class StripePlanPrice(BaseModel): +class StripePlanPrice(PowerOnModel): """Persistierte Zuordnung planKey zu Stripe Product/Price IDs.""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), diff --git a/modules/features/neutralization/datamodelFeatureNeutralizer.py b/modules/features/neutralization/datamodelFeatureNeutralizer.py index d83820fa..9465667c 100644 --- a/modules/features/neutralization/datamodelFeatureNeutralizer.py +++ b/modules/features/neutralization/datamodelFeatureNeutralizer.py @@ -93,7 +93,7 @@ class DataNeutraliserConfig(PowerOnModel): @i18nModel("Neutralisiertes Datenattribut") -class DataNeutralizerAttributes(BaseModel): +class DataNeutralizerAttributes(PowerOnModel): """Zuordnung Originaltext zu Platzhalter fuer neutralisierte Daten.""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), @@ -152,7 +152,7 @@ class DataNeutralizerAttributes(BaseModel): @i18nModel("Neutralisierungs-Snapshot") -class DataNeutralizationSnapshot(BaseModel): +class DataNeutralizationSnapshot(PowerOnModel): """Speichert den vollstaendigen neutralisierten Text (mit Platzhaltern) pro Quelle.""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), diff --git a/modules/features/realEstate/datamodelFeatureRealEstate.py b/modules/features/realEstate/datamodelFeatureRealEstate.py index 1cdc2388..8de665de 100644 --- a/modules/features/realEstate/datamodelFeatureRealEstate.py +++ b/modules/features/realEstate/datamodelFeatureRealEstate.py @@ -110,7 +110,7 @@ class GeoPolylinie(BaseModel): @i18nModel("Dokument") -class Dokument(BaseModel): +class Dokument(PowerOnModel): """Supporting data object for file and URL management with versioning.""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), @@ -204,7 +204,7 @@ class Kontext(PowerOnModel): ) -class Land(BaseModel): +class Land(PowerOnModel): """National level administrative entity.""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), @@ -318,7 +318,7 @@ class Kanton(PowerOnModel): ) -class Gemeinde(BaseModel): +class Gemeinde(PowerOnModel): """Municipal level administrative entity.""" id: str = Field( default_factory=lambda: str(uuid.uuid4()), diff --git a/modules/serviceCenter/services/serviceSubscription/stripeBootstrap.py b/modules/serviceCenter/services/serviceSubscription/stripeBootstrap.py index 9e99ba12..73fbfb02 100644 --- a/modules/serviceCenter/services/serviceSubscription/stripeBootstrap.py +++ b/modules/serviceCenter/services/serviceSubscription/stripeBootstrap.py @@ -216,9 +216,9 @@ def _archiveOtherRecurringPrices( stripe.Price.modify(p.id, active=False) logger.info("Archived stale Stripe Price %s on product %s", p.id, productId) except Exception as ex: - logger.warning("Could not archive price %s: %s", p.id, ex) + logger.debug("Could not archive price %s: %s", p.id, ex) except Exception as e: - logger.warning("Stale price archive pass failed for product %s: %s", productId, e) + logger.debug("Stale price archive pass skipped for product %s: %s", productId, e) def _validateStripeIdsExist(stripe, mapping: StripePlanPrice) -> bool: