Skip to content

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

ColumnTypeNotes
property_idINTEGER PKBeds24 propertyId
short_codeTEXTCC / SS / TP
short_nameTEXTe.g. “Steamboat Sheraton #702”
property_urlTEXThttps://www.steamboatbyowner.com/{slug}
signature_phoneTEXTPhone in email signatures
checkout_instructionsTEXT (JSON)Bulleted list rendered in checkout-eve message
form_overridesTEXT (JSON)Per-form field tweaks
cleanersTEXT (JSON)[{name, phone, email}, ...] — receive heads-up / T-2 / time-commit
addon_pricingTEXT (JSON){early_checkin_usd, late_checkout: {HH:MM: USD, ...}}
arrival_instructions_shortTEXTShort inline blurb in T-14 (unused as of latest design)
lock_box_codeTEXTSingle code, substituted as {lockBoxCode} in arrival_message_body
arrival_message_bodyTEXTPer-unit T-0 arrival message body (full content)
cohost_emailsTEXT (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:

Terminal window
# Update a single field
npx 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.ts
  • migrations/0005_property_config.sql (initial)
  • Later migrations: 0009, 0014, 0026, 0030, 0031, 0032, 0033 each add a column