Property config
property_config is the D1 table holding per-property settings. One
row per unit (3 rows total: CC #223, SS #702, TP #501).
Columns
| Column | Type | Notes |
|---|---|---|
property_id | INTEGER PK | Beds24 propertyId |
short_code | TEXT | CC / SS / TP |
short_name | TEXT | e.g. “Steamboat Sheraton #702” |
property_url | TEXT | https://www.steamboatbyowner.com/{slug} |
signature_phone | TEXT | Phone in email signatures |
checkout_instructions | TEXT (JSON) | Bulleted list rendered in checkout-eve message |
form_overrides | TEXT (JSON) | Per-form field tweaks |
cleaners | TEXT (JSON) | [{name, phone, email}, ...] — receive heads-up / T-2 / time-commit |
addon_pricing | TEXT (JSON) | {early_checkin_usd, late_checkout: {HH:MM: USD, ...}} |
arrival_instructions_short | TEXT | Short inline blurb in T-14 (unused as of latest design) |
lock_box_code | TEXT | Single code, substituted as {lockBoxCode} in arrival_message_body |
arrival_message_body | TEXT | Per-unit T-0 arrival message body (full content) |
cohost_emails | TEXT (JSON) | ["email@x.com", ...] — TP front desk currently |
Reading
getPropertyConfig(env, propertyId) in src/lib/property-config.ts
returns a typed PropertyConfig object.
Editing
Currently via D1 commands:
# Update a single fieldnpx wrangler d1 execute stayonthesnow --remote --command="\ UPDATE property_config SET lock_box_code = 'NEW_CODE' \ WHERE property_id = 117485;"GUI editor: /admin/property/{id} for some fields. JSON columns can
be edited via /admin/property/{id}/raw (textarea).
Seeded values
CC #223 (117485):
- Cleaners: Demone + Shereena
- Lock-box code: 6253
- arrival_message_body: door-frame lockbox instructions
SS #702 (117487):
- Cleaners: Demone + Shereena
- Lock-box code: empty (codes 125 + 1851 are inlined in arrival_message_body)
- arrival_message_body: full 11-step procedure
TP #501 (120202):
- Cleaners: Bill (placeholder)
- Lock-box code: empty (no lockbox — front desk)
- arrival_message_body: “check in at Torian Plum FRONT DESK”
- cohost_emails:
["brad.price@vacasa.com", "kemar.kennedy@vacasa.com"]
Adding a new property
Insert a row with all required columns set. The workflow auto-picks up
the new property on next daily-flag-sync. Cleaners default to []
(no notifications) until populated.
Source
src/lib/property-config.tsmigrations/0005_property_config.sql(initial)- Later migrations: 0009, 0014, 0026, 0030, 0031, 0032, 0033 each add a column