From 556eef529ae6b96721ca6c4d084f200f5fb09c8a Mon Sep 17 00:00:00 2001 From: Jonas Linter <{email_address}> Date: Tue, 25 Nov 2025 20:20:06 +0100 Subject: [PATCH] Removed redundant size_field in webhook_requests --- ...1_25_1155-e7ee03d8f430_add_hotels_and_webhook_tables.py | 5 +++-- src/alpine_bits_python/db.py | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/alembic/versions/2025_11_25_1155-e7ee03d8f430_add_hotels_and_webhook_tables.py b/alembic/versions/2025_11_25_1155-e7ee03d8f430_add_hotels_and_webhook_tables.py index 9f7aa1f..9065709 100644 --- a/alembic/versions/2025_11_25_1155-e7ee03d8f430_add_hotels_and_webhook_tables.py +++ b/alembic/versions/2025_11_25_1155-e7ee03d8f430_add_hotels_and_webhook_tables.py @@ -10,6 +10,8 @@ from typing import Sequence, Union from alembic import op import sqlalchemy as sa +from alpine_bits_python.const import WebhookStatus + # revision identifiers, used by Alembic. revision: str = 'e7ee03d8f430' @@ -66,13 +68,12 @@ def upgrade() -> None: sa.Column('payload_hash', sa.String(length=64), nullable=False), sa.Column('webhook_endpoint_id', sa.Integer(), nullable=True), sa.Column('hotel_id', sa.String(length=50), nullable=True), - sa.Column('status', sa.String(length=20), nullable=False, default='pending'), + sa.Column('status', sa.String(length=20), nullable=False, default=WebhookStatus.PENDING.value), sa.Column('processing_started_at', sa.DateTime(timezone=True), nullable=True), sa.Column('processing_completed_at', sa.DateTime(timezone=True), nullable=True), sa.Column('retry_count', sa.Integer(), nullable=True, default=0), sa.Column('last_error', sa.String(length=2000), nullable=True), sa.Column('payload_json', sa.JSON(), nullable=True), - sa.Column('payload_size_bytes', sa.Integer(), nullable=True), sa.Column('purged_at', sa.DateTime(timezone=True), nullable=True), sa.Column('created_at', sa.DateTime(timezone=True), nullable=False), sa.Column('source_ip', sa.String(length=45), nullable=True), diff --git a/src/alpine_bits_python/db.py b/src/alpine_bits_python/db.py index 8a7ef41..41f859f 100644 --- a/src/alpine_bits_python/db.py +++ b/src/alpine_bits_python/db.py @@ -4,6 +4,8 @@ import os from collections.abc import AsyncGenerator, Callable from typing import TypeVar +from .const import WebhookStatus + from sqlalchemy import ( JSON, Boolean, @@ -751,8 +753,8 @@ class WebhookRequest(Base): hotel_id = Column(String(50), ForeignKey("hotels.hotel_id"), nullable=True, index=True) # Processing tracking - status = Column(String(20), nullable=False, default='pending', index=True) - # Status values: 'pending', 'processing', 'completed', 'failed' + status = Column(String(20), nullable=False, default=WebhookStatus.PENDING.value, index=True) + # Status values: 'pending', 'processing', 'completed', 'failed' set by Enum WebhookStatus processing_started_at = Column(DateTime(timezone=True), nullable=True) processing_completed_at = Column(DateTime(timezone=True), nullable=True) @@ -763,7 +765,6 @@ class WebhookRequest(Base): # Payload storage payload_json = Column(JSON, nullable=True) # NULL after purge, kept for retries - payload_size_bytes = Column(Integer, nullable=True) # Track original size purged_at = Column(DateTime(timezone=True), nullable=True) # When JSON was purged # Metadata