db_modeling_for_capi #5

Merged
jonas merged 23 commits from db_modeling_for_capi into main 2025-10-10 14:57:52 +00:00
5 changed files with 5 additions and 81 deletions
Showing only changes of commit f0beb294ee - Show all commits

View File

@@ -73,6 +73,8 @@ RetrieveRoomStays = OtaResRetrieveRs.ReservationsList.HotelReservation.RoomStays
NotifHotelReservation = OtaHotelResNotifRq.HotelReservations.HotelReservation NotifHotelReservation = OtaHotelResNotifRq.HotelReservations.HotelReservation
RetrieveHotelReservation = OtaResRetrieveRs.ReservationsList.HotelReservation RetrieveHotelReservation = OtaResRetrieveRs.ReservationsList.HotelReservation
from .const import RESERVATION_ID_TYPE
# Enum to specify which OTA message type to use # Enum to specify which OTA message type to use
class OtaMessageType(Enum): class OtaMessageType(Enum):
@@ -80,11 +82,6 @@ class OtaMessageType(Enum):
RETRIEVE = "retrieve" # For OtaResRetrieveRs RETRIEVE = "retrieve" # For OtaResRetrieveRs
RESERVATION_ID_TYPE: str = (
"13" # Default reservation ID type for Reservation. 14 would be cancellation
)
@dataclass @dataclass
class KidsAgeData: class KidsAgeData:
"""Data class to hold information about children's ages.""" """Data class to hold information about children's ages."""

View File

@@ -0,0 +1,3 @@
RESERVATION_ID_TYPE: str = (
"13" # Default reservation ID type for Reservation. 14 would be cancellation
)

View File

@@ -1,73 +0,0 @@
from typing import Any
from pydantic import BaseModel, Field
class AlpineBitsHandshakeRequest(BaseModel):
"""Model for AlpineBits handshake request data"""
action: str = Field(
..., description="Action parameter, typically 'OTA_Ping:Handshaking'"
)
request_xml: str | None = Field(None, description="XML request document")
class ContactName(BaseModel):
"""Contact name structure"""
first: str | None = None
last: str | None = None
class ContactAddress(BaseModel):
"""Contact address structure"""
street: str | None = None
city: str | None = None
state: str | None = None
country: str | None = None
postalCode: str | None = None
class Contact(BaseModel):
"""Contact information from Wix form"""
name: ContactName | None = None
email: str | None = None
locale: str | None = None
company: str | None = None
birthdate: str | None = None
labelKeys: dict[str, Any] | None = None
contactId: str | None = None
address: ContactAddress | None = None
jobTitle: str | None = None
imageUrl: str | None = None
updatedDate: str | None = None
phone: str | None = None
createdDate: str | None = None
class SubmissionPdf(BaseModel):
"""PDF submission structure"""
url: str | None = None
filename: str | None = None
class WixFormSubmission(BaseModel):
"""Model for Wix form submission data"""
formName: str
submissions: list[dict[str, Any]] = Field(default_factory=list)
submissionTime: str
formFieldMask: list[str] = Field(default_factory=list)
submissionId: str
contactId: str
submissionsLink: str
submissionPdf: SubmissionPdf | None = None
formId: str
contact: Contact | None = None
# Dynamic form fields - these will capture all field:* entries
class Config:
extra = "allow" # Allow additional fields not defined in the model

View File

@@ -1,2 +0,0 @@
def parse_form(form: dict):
pass

View File

@@ -1,4 +1,3 @@
import pytest import pytest
from alpine_bits_python.alpine_bits_helpers import ( from alpine_bits_python.alpine_bits_helpers import (