{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
        "appointment_name": {
            "type": "string",
            "input_type": "text",
            "hidden": false,
            "title": "Customer",
            "tab": "",
            "misc": {
                "tooltip": "Enter the name of the customer."
            },
            "required": true,
            "dependency": [],
            "default_value": "",
            "editable": true
        },
        "appointment_service_id": {
            "type": "string",
            "input_type": "select",
            "hidden": false,
            "title": "Service",
            "tab": "",
            "misc": {
                "tooltip": "Select the service for which the booking is being made.",
                "options": "services",
                "sub_type": "positive_integer"
            },
            "required": false,
            "dependency": [
                [
                    "unit_id",
                    "<=",
                    "0"
                ]
            ],
            "default_value": null,
            "editable": true
        },
        "appointment_unit_id": {
            "type": "string",
            "input_type": "select",
            "hidden": false,
            "title": "Unit",
            "tab": "",
            "misc": {
                "tooltip": "Select the unit for this booking.",
                "options": "units",
                "sub_type": "positive_integer"
            },
            "required": false,
            "dependency": [
                [
                    "service_id",
                    "<=",
                    "0"
                ]
            ],
            "default_value": null,
            "editable": true
        },
        "appointment_staff_member_id": {
            "type": "string",
            "input_type": "select",
            "hidden": false,
            "title": "Staff member",
            "tab": "",
            "misc": {
                "tooltip": "Select the staff member for this booking.",
                "options": "backend",
                "sub_type": "positive_integer"
            },
            "required": false,
            "dependency": [
                [
                    "unit_id",
                    "<=",
                    "0"
                ]
            ],
            "default_value": null,
            "editable": true
        },
        "appointment_location_id": {
            "type": "string",
            "input_type": "select",
            "hidden": false,
            "title": "Location",
            "tab": "",
            "misc": {
                "tooltip": "Select the location for this booking.",
                "options": "backend",
                "sub_type": "positive_integer"
            },
            "required": false,
            "dependency": [],
            "default_value": null,
            "editable": true
        },
        "appointment_day": {
            "type": "string",
            "input_type": "date",
            "hidden": true,
            "title": "Date",
            "tab": "",
            "misc": {
                "tooltip": "Select the booking date.",
                "date_format": "F j, Y",
                "time_zone": "Asia/Dhaka"
            },
            "required": true,
            "dependency": [],
            "default_value": "",
            "editable": true
        },
        "appointment_time": {
            "type": "string",
            "input_type": "select",
            "hidden": true,
            "title": "Time",
            "tab": "",
            "misc": {
                "tooltip": "Select the booking time.",
                "time_format": "g:i a",
                "options": "backend"
            },
            "required": true,
            "dependency": [
                [
                    "unit_id",
                    "<=",
                    "0"
                ]
            ],
            "default_value": "",
            "editable": true
        },
        "appointment_quantity": {
            "type": "string",
            "input_type": "select",
            "hidden": true,
            "title": "Places booked",
            "tab": "",
            "misc": {
                "tooltip": "Specify the number of places being booked for this appointment.",
                "sub_type": "positive_integer",
                "options": "backend"
            },
            "required": false,
            "dependency": [
                [
                    "unit_id",
                    "<=",
                    "0"
                ]
            ],
            "default_value": null,
            "editable": true
        },
        "appointment_number_of_people": {
            "type": "string",
            "input_type": "number_of_people",
            "hidden": true,
            "title": "Breakdown by attendee types",
            "tab": "",
            "misc": {
                "tooltip": "Breakdown by attendee types (e.g. adults, children, infants) when your booking flow collects per-type counts."
            },
            "required": false,
            "dependency": [
                [
                    "unit_id",
                    ">",
                    "0"
                ]
            ],
            "default_value": "",
            "editable": true
        },
        "appointment_duration": {
            "type": "string",
            "input_type": "text",
            "hidden": false,
            "title": "Duration",
            "tab": "",
            "misc": {
                "sub_type": "positive_integer"
            },
            "required": false,
            "dependency": [],
            "default_value": "",
            "editable": false
        },
        "appointment_email": {
            "type": "string",
            "input_type": "text",
            "hidden": true,
            "title": "Email",
            "tab": "",
            "misc": {
                "tooltip": "Enter the customer's email address.",
                "sub_type": "email"
            },
            "required": true,
            "dependency": [],
            "default_value": "",
            "editable": true
        },
        "appointment_phone": {
            "type": "string",
            "input_type": "text",
            "hidden": true,
            "title": "Phone",
            "tab": "",
            "misc": {
                "tooltip": "Enter the customer's phone number."
            },
            "required": false,
            "dependency": [],
            "default_value": "",
            "editable": true
        },
        "appointment_description": {
            "type": "string",
            "input_type": "textarea",
            "hidden": true,
            "title": "Comment",
            "tab": "",
            "misc": {
                "tooltip": "Add any additional comments related to the booking."
            },
            "required": false,
            "dependency": [],
            "default_value": "",
            "editable": true
        },
        "appointment_extra": {
            "type": "string",
            "input_type": "webba_custom_data",
            "hidden": true,
            "title": "Custom fields",
            "tab": "",
            "misc": null,
            "required": false,
            "dependency": [],
            "default_value": "",
            "editable": true
        },
        "appointment_moment_price": {
            "type": "string",
            "input_type": "text",
            "hidden": true,
            "title": "Price",
            "tab": "",
            "misc": {
                "tooltip": "If the payment has already been made, enter the payment amount paid for 1 person.",
                "sub_type": "none_negative_float"
            },
            "required": false,
            "dependency": [],
            "default_value": "",
            "editable": true
        },
        "appointment_amount_paid": {
            "type": "string",
            "input_type": "text",
            "hidden": false,
            "title": "Amount paid",
            "tab": "",
            "misc": {
                "tooltip": "Enter the exact amount of money that was actually paid",
                "sub_type": "none_negative_float"
            },
            "required": false,
            "dependency": [],
            "default_value": "0",
            "editable": true
        },
        "appointment_status": {
            "type": "string",
            "input_type": "select",
            "hidden": false,
            "title": "Status",
            "tab": "",
            "misc": {
                "tooltip": "Choose the appropriate booking status from the options available.",
                "options": {
                    "pending": "Pending",
                    "approved": "Approved",
                    "rejected": "Rejected",
                    "cancelled": "Cancelled",
                    "arrived": "Arrived",
                    "noshow": "No-Show"
                }
            },
            "required": true,
            "dependency": [],
            "default_value": "pending",
            "editable": true
        }
    }
}