当前在线  

/v1/floorplan/

Community-built floorplan layer. A floorplan is a venue/event interior map (`ATFloorplans` -> `ATFloorplanFloors` -> `ATFloorplanLayouts` -> `ATFloorplanAreas`). Community members draw the walls and furniture in-browser; the resulting areas can be tagged on `ATLocation.ATFloorplanArea_ID` or `ATLocationEvents.ATFloorplanArea_ID`, and trades that settle against tagged venues pay the floorplan creator a royalty (handled in `events/ontransactionstatechange/commission.php`). Architecture vs. furniture: each floor stores an `ArchitectureSVG` text blob for the bits that don't change (walls, columns, restrooms) and one or more `ATFloorplanLayouts` rows for the bits that DO (tables, sections, patio seating). Exactly one layout per floor is `Status='Active'` at any given moment; older Active layouts flip to `Historical` when a new one goes live, so attribution still resolves for past appointments. Composer integration is intentionally deferred to a follow-up; v1 ships with a direct creation entry point (`set_new`) callable from the gallery page or any other surface. Every new floorplan links directly to an `ATLocation_ID`, an `ATLocationEvent_ID`, or both. Auth: `set_*` writes require `Permission::CanCreateFloorplan`, ownership, or `Permission::CanReviewFloorplanSubmissions` depending on the action. Reads of an Active floorplan are public so consuming surfaces can render it without auth.
GET

/v1/floorplan/get_by_id

#
Returns one floorplan by ID with all floors, layouts, and areas hydrated. Used by the editor JS to refresh state after a write. Public-by-design: the floorplan tree itself isn't sensitive (the editor surface gates its own write actions via permissions).

参数

名称类型必填默认值描述
ATFloorplan_ID int 是的 — Floorplan to fetch.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/floorplan/get_by_id' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplan_ID={{ATFloorplan_ID}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_get_by_id_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.floorplan 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocation_ID 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocation_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocation_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocation_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocation_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocationEvent_ID 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocationEvent_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocationEvent_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocationEvent_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATLocationEvent_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].Creator-ATUser_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].Creator-ATUser_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].Creator-ATUser_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATDiscussionPosts_ID 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATDiscussionPosts_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATDiscussionPosts_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATDiscussionPosts_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ATDiscussionPosts_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].URLSlug 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].URLSlug.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].URLSlug.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].Statusstring ["Draft","Submitted","Active","Superseded","Rejected"] 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].PublishedDate 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].PublishedDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].PublishedDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ReviewedBy-ATUser_ID 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ReviewedBy-ATUser_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ReviewedBy-ATUser_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ReviewedBy-ATUser_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].ReviewedBy-ATUser_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].Cache-EarnedTraderPointsDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].Cache-EarnedTraderPoints.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].Cache-EarnedTraderPoints.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].LocationName 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].LocationName.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].LocationName.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].LocationAlias 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].LocationAlias.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].LocationAlias.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].EventName 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].EventName.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].EventName.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].EventURLSlug 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].EventURLSlug.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].EventURLSlug.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].location 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].location.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].location.anyOf[0].ATLocation_IDinteger 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].location.anyOf[0].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].location.anyOf[0].Aliasstring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].location.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].event 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].event.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].event.anyOf[0].ATLocationEvent_IDinteger 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].event.anyOf[0].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].event.anyOf[0].URLSlugstring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].event.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floorsarray 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[]object 否
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ATFloorplan_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ATFloorplan_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ATFloorplan_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].FloorOrderDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].FloorOrder.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].FloorOrder.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ViewBoxWidthDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ViewBoxWidth.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ViewBoxWidth.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ViewBoxHeightDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ViewBoxHeight.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ViewBoxHeight.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ArchitectureSVG 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ArchitectureSVG.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].ArchitectureSVG.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].BackgroundImageURL 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].BackgroundImageURL.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].BackgroundImageURL.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layoutsarray 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[]object 否
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].ATFloorplanFloor_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].ATFloorplanFloor_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].ATFloorplanFloor_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].Statusstring ["Draft","Active","Historical"] 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].EffectiveStartDate 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].EffectiveStartDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].EffectiveStartDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].EffectiveEndDate 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].EffectiveEndDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].EffectiveEndDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].Creator-ATUser_ID 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].Creator-ATUser_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].Creator-ATUser_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].Creator-ATUser_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].Creator-ATUser_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areasarray 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[]object 否
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].ATFloorplanLayout_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].ATFloorplanLayout_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].ATFloorplanLayout_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].Labelstring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].Category 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].Category.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].Category.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].SVGShapestring ["rect","polygon","circle","path"] 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].SVGGeometrystring 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].DesirabilityScore 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].DesirabilityScore.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].DesirabilityScore.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].DesirabilityScore.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].DesirabilityScore.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].Capacity 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].Capacity.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].Capacity.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].Capacity.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].Capacity.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].SortOrderDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].SortOrder.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[0].floors[].layouts[].areas[].SortOrder.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplan.anyOf[1]null 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/get_by_id",
    "RequestUserAlias": "example-user",
    "Payload": {
        "floorplan": {
            "ID": 0,
            "CreatedDate": "synthetic-example",
            "LastUpdateDate": "synthetic-example",
            "DeletedDate": null,
            "ATLocation_ID": 0,
            "ATLocationEvent_ID": 0,
            "Creator-ATUser_ID": 0,
            "ATDiscussionPosts_ID": 0,
            "Name": "synthetic-example",
            "URLSlug": "synthetic-example",
            "Status": "Draft",
            "PublishedDate": "synthetic-example",
            "ReviewedBy-ATUser_ID": 0,
            "Cache-EarnedTraderPoints": 0,
            "LocationName": "synthetic-example",
            "LocationAlias": "synthetic-example",
            "EventName": "synthetic-example",
            "EventURLSlug": "synthetic-example",
            "location": {
                "ATLocation_ID": 0,
                "Name": "synthetic-example",
                "Alias": "synthetic-example"
            },
            "event": {
                "ATLocationEvent_ID": 0,
                "Name": "synthetic-example",
                "URLSlug": "synthetic-example"
            },
            "floors": []
        }
    }
}
机器可读的端点文档
GET

/v1/floorplan/get_floor

#
Single-floor detail (architecture SVG + the floor's Active layout with all areas). Used by the editor when switching between floors. Public-by-design: same rationale as `get_for_location`.

参数

名称类型必填默认值描述
ATFloorplanFloor_ID int 是的 — Floor row ID.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/floorplan/get_floor' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplanFloor_ID={{ATFloorplanFloor_ID}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_get_floor_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.floor 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ATFloorplan_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ATFloorplan_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ATFloorplan_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].Namestring 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].FloorOrderDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].FloorOrder.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].FloorOrder.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ViewBoxWidthDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ViewBoxWidth.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ViewBoxWidth.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ViewBoxHeightDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ViewBoxHeight.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ViewBoxHeight.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ArchitectureSVG 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ArchitectureSVG.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].ArchitectureSVG.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].BackgroundImageURL 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].BackgroundImageURL.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].BackgroundImageURL.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layoutsarray 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[]object 否
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].ATFloorplanFloor_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].ATFloorplanFloor_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].ATFloorplanFloor_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].Namestring 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].Statusstring ["Draft","Active","Historical"] 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].EffectiveStartDate 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].EffectiveStartDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].EffectiveStartDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].EffectiveEndDate 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].EffectiveEndDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].EffectiveEndDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].Creator-ATUser_ID 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].Creator-ATUser_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].Creator-ATUser_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].Creator-ATUser_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].Creator-ATUser_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areasarray 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[]object 否
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].ATFloorplanLayout_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].ATFloorplanLayout_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].ATFloorplanLayout_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].Labelstring 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].Category 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].Category.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].Category.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].SVGShapestring ["rect","polygon","circle","path"] 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].SVGGeometrystring 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].DesirabilityScore 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].DesirabilityScore.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].DesirabilityScore.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].DesirabilityScore.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].DesirabilityScore.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].Capacity 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].Capacity.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].Capacity.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].Capacity.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].Capacity.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].SortOrderDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].SortOrder.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[0].layouts[].areas[].SortOrder.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floor.anyOf[1]null 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/get_floor",
    "RequestUserAlias": "example-user",
    "Payload": {
        "floor": {
            "ID": 0,
            "CreatedDate": "synthetic-example",
            "LastUpdateDate": "synthetic-example",
            "DeletedDate": null,
            "ATFloorplan_ID": 0,
            "Name": "synthetic-example",
            "FloorOrder": 0,
            "ViewBoxWidth": 0,
            "ViewBoxHeight": 0,
            "ArchitectureSVG": "synthetic-example",
            "BackgroundImageURL": "synthetic-example",
            "layouts": []
        }
    }
}
机器可读的端点文档
GET

/v1/floorplan/get_for_event

#
Returns Active floorplans linked to an `ATLocationEvents` row via `ATFloorplans.ATLocationEvent_ID`. Public-by-design: floorplans are reused across modules and apps; no sensitive content lives on this surface.

参数

名称类型必填默认值描述
ATLocationEvent_ID int 是的 — Event to fetch floorplans for.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/floorplan/get_for_event' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATLocationEvent_ID={{ATLocationEvent_ID}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_get_for_event_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.floorplansarray 是的
$.oneOf[0].allOf[1].Payload.floorplans[]object 否
$.oneOf[0].allOf[1].Payload.floorplans[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Creator-ATUser_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].Creator-ATUser_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Creator-ATUser_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].URLSlug 是的
$.oneOf[0].allOf[1].Payload.floorplans[].URLSlug.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].URLSlug.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Statusstring ["Draft","Submitted","Active","Superseded","Rejected"] 是的
$.oneOf[0].allOf[1].Payload.floorplans[].PublishedDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].PublishedDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].PublishedDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Cache-EarnedTraderPointsDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].Cache-EarnedTraderPoints.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Cache-EarnedTraderPoints.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationName 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationName.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationName.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationAlias 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationAlias.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationAlias.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventName 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventName.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventName.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventURLSlug 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventURLSlug.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventURLSlug.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[0].ATLocation_IDinteger 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[0].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[0].Aliasstring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[0].ATLocationEvent_IDinteger 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[0].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[0].URLSlugstring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floorsarray 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[]object 否
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ATFloorplan_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ATFloorplan_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ATFloorplan_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].FloorOrderDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].FloorOrder.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].FloorOrder.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxWidthDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxWidth.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxWidth.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxHeightDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxHeight.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxHeight.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ArchitectureSVG 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ArchitectureSVG.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ArchitectureSVG.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].BackgroundImageURL 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].BackgroundImageURL.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].BackgroundImageURL.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layoutsarray 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[]object 否
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ATFloorplanFloor_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ATFloorplanFloor_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ATFloorplanFloor_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Statusstring ["Draft","Active","Historical"] 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveStartDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveStartDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveStartDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveEndDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveEndDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveEndDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areasarray 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[]object 否
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ATFloorplanLayout_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ATFloorplanLayout_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ATFloorplanLayout_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Labelstring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Category 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Category.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Category.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SVGShapestring ["rect","polygon","circle","path"] 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SVGGeometrystring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SortOrderDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SortOrder.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SortOrder.oneOf[1]string 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/get_for_event",
    "RequestUserAlias": "example-user",
    "Payload": {
        "floorplans": []
    }
}
机器可读的端点文档
GET

/v1/floorplan/get_for_location

#
Returns the Active floorplans linked to an `ATLocation` via the direct `ATFloorplans.ATLocation_ID` column, with all floors, the currently- Active layout per floor, and every area on that layout. Returns an empty list (still wrapped in Success) when no Active floorplan covers the venue. Multiple floorplans may cover the same venue (different creators, different perspectives). Consuming surfaces typically render the first Active result; finer attribution comes via the area-level tag `ATLocation.ATFloorplanArea_ID`. Public-by-design: floorplans are reused across modules and apps; no sensitive content lives on this surface.

参数

名称类型必填默认值描述
ATLocation_ID int 是的 — Location to fetch floorplans for.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/floorplan/get_for_location' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATLocation_ID={{ATLocation_ID}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_get_for_location_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.floorplansarray 是的
$.oneOf[0].allOf[1].Payload.floorplans[]object 否
$.oneOf[0].allOf[1].Payload.floorplans[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocation_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATLocationEvent_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Creator-ATUser_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].Creator-ATUser_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Creator-ATUser_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ATDiscussionPosts_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].URLSlug 是的
$.oneOf[0].allOf[1].Payload.floorplans[].URLSlug.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].URLSlug.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Statusstring ["Draft","Submitted","Active","Superseded","Rejected"] 是的
$.oneOf[0].allOf[1].Payload.floorplans[].PublishedDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].PublishedDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].PublishedDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].ReviewedBy-ATUser_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Cache-EarnedTraderPointsDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].Cache-EarnedTraderPoints.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].Cache-EarnedTraderPoints.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationName 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationName.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationName.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationAlias 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationAlias.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].LocationAlias.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventName 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventName.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventName.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventURLSlug 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventURLSlug.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].EventURLSlug.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[0].ATLocation_IDinteger 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[0].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[0].Aliasstring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].location.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[0]object 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[0].ATLocationEvent_IDinteger 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[0].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[0].URLSlugstring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].event.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floorsarray 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[]object 否
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ATFloorplan_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ATFloorplan_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ATFloorplan_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].FloorOrderDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].FloorOrder.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].FloorOrder.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxWidthDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxWidth.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxWidth.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxHeightDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxHeight.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ViewBoxHeight.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ArchitectureSVG 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ArchitectureSVG.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].ArchitectureSVG.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].BackgroundImageURL 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].BackgroundImageURL.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].BackgroundImageURL.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layoutsarray 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[]object 否
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ATFloorplanFloor_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ATFloorplanFloor_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].ATFloorplanFloor_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Namestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Statusstring ["Draft","Active","Historical"] 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveStartDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveStartDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveStartDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveEndDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveEndDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].EffectiveEndDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].Creator-ATUser_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areasarray 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[]object 否
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DeletedDate = null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ATFloorplanLayout_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ATFloorplanLayout_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].ATFloorplanLayout_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Labelstring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Category 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Category.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Category.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SVGShapestring ["rect","polygon","circle","path"] 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SVGGeometrystring 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].DesirabilityScore.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].Capacity.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SortOrderDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SortOrder.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.floorplans[].floors[].layouts[].areas[].SortOrder.oneOf[1]string 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/get_for_location",
    "RequestUserAlias": "example-user",
    "Payload": {
        "floorplans": []
    }
}
机器可读的端点文档
GET

/v1/floorplan/get_license_for_app

#
License lookup for a (floorplan, app) pair. Resolution order: 1. Per-app override row in `ATFloorplanLicenses` (Status='Active'). 2. Wildcard row (`ATApps_ID IS NULL`, Status='Active'). 3. Fall through to the `Permission::FloorplanAreaTradeRoyaltyPct` default for the floorplan originator. Public-by-design: app renderers can inspect published floorplan terms.

参数

名称类型必填默认值描述
ATFloorplan_ID int 是的 — Floorplan to look up.
ATApps_ID int 否 0 App requesting the data; pass 0 for first-party.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/floorplan/get_license_for_app' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplan_ID={{ATFloorplan_ID}}' \
  --data-urlencode 'ATApps_ID={{ATApps_ID}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_get_license_for_app_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.royaltyPctnumber 是的
$.oneOf[0].allOf[1].Payload.flatFeeCentsinteger 是的
$.oneOf[0].allOf[1].Payload.sourcestring ["app","wildcard","default"] 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/get_license_for_app",
    "RequestUserAlias": "example-user",
    "Payload": {
        "royaltyPct": 0,
        "flatFeeCents": 0,
        "source": "app"
    }
}
机器可读的端点文档
GET

/v1/floorplan/get_pending_review_list

#
Moderation queue: floorplans waiting for review. Gated by `Permission::CanReviewFloorplanSubmissions`.

参数

名称类型必填默认值描述
resultLimit int 否 50 Max rows to return.
resultOffset int 否 0 Pagination offset.
请求示例(cURL)
curl --get \
  'https://cn.appointmenttrader.com/v1/floorplan/get_pending_review_list' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'resultLimit={{resultLimit}}' \
  --data-urlencode 'resultOffset={{resultOffset}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_get_pending_review_list_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.itemsarray 是的
$.oneOf[0].allOf[1].Payload.items[]object 否
$.oneOf[0].allOf[1].Payload.items[].IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.items[].ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.items[].ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.items[].Namestring 是的
$.oneOf[0].allOf[1].Payload.items[].Creator-ATUser_IDDatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.items[].Creator-ATUser_ID.oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.items[].Creator-ATUser_ID.oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.items[].ATLocation_ID 是的
$.oneOf[0].allOf[1].Payload.items[].ATLocation_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.items[].ATLocation_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.items[].ATLocation_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.items[].ATLocation_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.items[].ATLocationEvent_ID 是的
$.oneOf[0].allOf[1].Payload.items[].ATLocationEvent_ID.anyOf[0]DatabaseInteger 是的Integer value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.items[].ATLocationEvent_ID.anyOf[0].oneOf[0]integer 是的
$.oneOf[0].allOf[1].Payload.items[].ATLocationEvent_ID.anyOf[0].oneOf[1]string 是的
$.oneOf[0].allOf[1].Payload.items[].ATLocationEvent_ID.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.items[].CreatedDatestring 是的
$.oneOf[0].allOf[1].Payload.items[].LastUpdateDate 是的
$.oneOf[0].allOf[1].Payload.items[].LastUpdateDate.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.items[].LastUpdateDate.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.items[].CreatorAlias 是的
$.oneOf[0].allOf[1].Payload.items[].CreatorAlias.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.items[].CreatorAlias.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.items[].LocationName 是的
$.oneOf[0].allOf[1].Payload.items[].LocationName.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.items[].LocationName.anyOf[1]null 是的
$.oneOf[0].allOf[1].Payload.items[].EventName 是的
$.oneOf[0].allOf[1].Payload.items[].EventName.anyOf[0]string 是的
$.oneOf[0].allOf[1].Payload.items[].EventName.anyOf[1]null 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/get_pending_review_list",
    "RequestUserAlias": "example-user",
    "Payload": {
        "items": []
    }
}
机器可读的端点文档
POST

/v1/floorplan/set_approved

#
Approve a Submitted floorplan, promoting it to Active. Floorplans are not exclusive per venue/event -- multiple Active floorplans may share the same direct link -- so no supersede pass runs at this layer; the moderator can manually mark an older floorplan as Superseded if a true replacement is intended. Gated by `Permission::CanReviewFloorplanSubmissions`.

参数

名称类型必填默认值描述
ATFloorplan_ID int 是的 — Floorplan to approve.
isWritingRequest bool 否 false Set true to actually transition.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_approved' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplan_ID={{ATFloorplan_ID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_set_approved_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.Status = "Active" 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_approved",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Status": "Active"
    }
}
机器可读的端点文档
POST

/v1/floorplan/set_areas

#
Replace every area on a layout with the supplied list. The whole-list replace is intentional: the editor sends its current state, the server is the single source of truth on disk. Existing areas are soft-deleted (`DeletedDate=NOW()`) and the supplied rows are inserted fresh; this preserves historical attribution because the old area IDs aren't reused, but tagged ATLocation/ATLocationEvent rows pointing at deleted areas will need re-tagging by the operator.

参数

名称类型必填默认值描述
ATFloorplanLayout_ID int 是的 — Layout to replace areas on.
areas array 是的 — Array of {label, category, svgShape, svgGeometry, capacity?, desirabilityScore?, sortOrder?} objects. The dispatcher accepts a JSON-encoded array on the wire (e.g. via the `areas` POST field) and auto-decodes it.
isWritingRequest bool 否 false Set true to actually persist.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_areas' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplanLayout_ID={{ATFloorplanLayout_ID}}' \
  --data-urlencode 'areas={{areas}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
参数: areas
字段类型必填描述
areasstring (application/json) 是的Pass a JSON-encoded string, not nested form fields.
areasarray (解码后的 JSON) 是的
areas[]object 否
areas[].labelstring 是的
areas[].svgShapestring ["rect","polygon","circle","path"] 否
areas[].svgGeometrystring 是的
areas[].categorystring 否
areas[].desirabilityScore 否
areas[].desirabilityScore.anyOf[0]integer 否
areas[].desirabilityScore.anyOf[1]null 否
areas[].capacity 否
areas[].capacity.anyOf[0]integer 否
areas[].capacity.anyOf[1]null 否
areas[].sortOrderinteger 否
响应字段
字段类型必填描述
$floorplan_set_areas_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.areaIDsarray 是的
$.oneOf[0].allOf[1].Payload.areaIDs[]integer 否
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_areas",
    "RequestUserAlias": "example-user",
    "Payload": {
        "areaIDs": []
    }
}
机器可读的端点文档
POST

/v1/floorplan/set_event_area

#
Tag an `ATLocationEvent` with a floorplan area. Same gate as `set_location_area`.

参数

名称类型必填默认值描述
ATLocationEvent_ID int 是的 — Event to tag.
ATFloorplanArea_ID int 是的 — Area to bind (0 to clear).
isWritingRequest bool 否 false Set true to actually persist.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_event_area' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATLocationEvent_ID={{ATLocationEvent_ID}}' \
  --data-urlencode 'ATFloorplanArea_ID={{ATFloorplanArea_ID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_set_event_area_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payload = true 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_event_area",
    "RequestUserAlias": "example-user",
    "Payload": true
}
机器可读的端点文档
POST

/v1/floorplan/set_floor

#
Upsert a floor (architecture SVG, viewbox, name, order). Pass ATFloorplanFloor_ID = 0 to create a new floor under the supplied floorplan; non-zero updates the existing row. Architecture SVG is sanitised before write so user-pasted blobs can't smuggle scripts.

参数

名称类型必填默认值描述
ATFloorplan_ID int 是的 — Owner floorplan; required when creating.
ATFloorplanFloor_ID int 是的 — 0 to create, or existing row ID to update.
name string 是的 — Floor display name.
floorOrder int 否 0 -2..N ordering hint (-2 = sub-basement, 0 = ground).
viewBoxWidth int 否 1000 SVG viewbox width.
viewBoxHeight int 否 1000 SVG viewbox height.
architectureSVG string 否 "" Raw SVG fragment for the building shell; sanitised server-side.
backgroundImageURL string 否 "" Optional traced reference photo URL.
isWritingRequest bool 否 false Set true to actually persist.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_floor' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplan_ID={{ATFloorplan_ID}}' \
  --data-urlencode 'ATFloorplanFloor_ID={{ATFloorplanFloor_ID}}' \
  --data-urlencode 'name={{name}}' \
  --data-urlencode 'floorOrder={{floorOrder}}' \
  --data-urlencode 'viewBoxWidth={{viewBoxWidth}}' \
  --data-urlencode 'viewBoxHeight={{viewBoxHeight}}' \
  --data-urlencode 'architectureSVG={{architectureSVG}}' \
  --data-urlencode 'backgroundImageURL={{backgroundImageURL}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_set_floor_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.ATFloorplanFloor_IDinteger 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_floor",
    "RequestUserAlias": "example-user",
    "Payload": {
        "ATFloorplanFloor_ID": 0
    }
}
机器可读的端点文档
POST

/v1/floorplan/set_imported_svg

#
Import a pasted/uploaded SVG fragment as the architecture layer of a floor. The fragment is sanitised server-side: script elements, event handlers (onload, onclick, ...), foreignObject elements, external references, and unsafe URL schemes are stripped before write. Optional autoExtractAreas mode walks the cleaned tree for rect, polygon, circle, and path elements that carry either a title child or a data-atv2-label attribute, and inserts each into the floor's currently-Active layout as a draft area, ready for the creator to assign categories to.

参数

名称类型必填默认值描述
ATFloorplanFloor_ID int 是的 — Floor to land the architecture on.
svgFragment string 是的 — The SVG text. May or may not have an outer svg element.
autoExtractAreas bool 否 false True to also create draft areas from titled shapes.
isWritingRequest bool 否 false Set true to actually persist.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_imported_svg' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplanFloor_ID={{ATFloorplanFloor_ID}}' \
  --data-urlencode 'svgFragment={{svgFragment}}' \
  --data-urlencode 'autoExtractAreas={{autoExtractAreas}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_set_imported_svg_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.ATFloorplanFloor_IDinteger 是的
$.oneOf[0].allOf[1].Payload.architectureSVGstring 是的
$.oneOf[0].allOf[1].Payload.extractedAreaCountinteger 是的
$.oneOf[0].allOf[1].Payload.sanitisedBytesinteger 是的
$.oneOf[0].allOf[1].Payload.sanitizedBytesinteger 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_imported_svg",
    "RequestUserAlias": "example-user",
    "Payload": {
        "ATFloorplanFloor_ID": 0,
        "architectureSVG": "synthetic-example",
        "extractedAreaCount": 0,
        "sanitisedBytes": 0,
        "sanitizedBytes": 0
    }
}
机器可读的端点文档
POST

/v1/floorplan/set_layout

#
Upsert a layout. Pass `ATFloorplanLayout_ID = 0` to create a new layout under the supplied floor; non-zero updates the existing row. When the resulting status is `Active`, ANY other Active layout on the same floor flips to `Historical` in the same write -- there can be exactly one Active layout per floor at a time.

参数

名称类型必填默认值描述
ATFloorplanFloor_ID int 是的 — Owner floor; required when creating.
ATFloorplanLayout_ID int 是的 — 0 to create, or existing row ID to update.
name string 是的 — Layout display name.
statusValue string 否 "Draft" One of Draft, Active, Historical.
effectiveStartDate string 否 "" Optional ISO datetime.
effectiveEndDate string 否 "" Optional ISO datetime.
isWritingRequest bool 否 false Set true to actually persist.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_layout' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplanFloor_ID={{ATFloorplanFloor_ID}}' \
  --data-urlencode 'ATFloorplanLayout_ID={{ATFloorplanLayout_ID}}' \
  --data-urlencode 'name={{name}}' \
  --data-urlencode 'statusValue={{statusValue}}' \
  --data-urlencode 'effectiveStartDate={{effectiveStartDate}}' \
  --data-urlencode 'effectiveEndDate={{effectiveEndDate}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_set_layout_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.ATFloorplanLayout_IDinteger 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_layout",
    "RequestUserAlias": "example-user",
    "Payload": {
        "ATFloorplanLayout_ID": 0
    }
}
机器可读的端点文档
POST

/v1/floorplan/set_location_area

#
Tag an `ATLocation` with a floorplan area so trades against that venue inherit area attribution for royalty purposes. Gated either by floorplan ownership OR `Permission::LocationAdministration`.

参数

名称类型必填默认值描述
ATLocation_ID int 是的 — Venue to tag.
ATFloorplanArea_ID int 是的 — Area to bind to this venue (0 to clear).
isWritingRequest bool 否 false Set true to actually persist.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_location_area' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATLocation_ID={{ATLocation_ID}}' \
  --data-urlencode 'ATFloorplanArea_ID={{ATFloorplanArea_ID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_set_location_area_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payload = true 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_location_area",
    "RequestUserAlias": "example-user",
    "Payload": true
}
机器可读的端点文档
POST

/v1/floorplan/set_new

#
Direct creation entry point. Transactionally creates an ATFloorplans row (Draft), plus an initial ATFloorplanFloor ("Ground") and an initial ATFloorplanLayout ("Default", Active) so the editor has somewhere to draw immediately. Gated by `Permission::CanCreateFloorplan`. At least one of `ATLocation_ID` or `ATLocationEvent_ID` is required. Both may be supplied.

参数

名称类型必填默认值描述
name string 是的 — Display name for the floorplan.
ATLocation_ID int 否 0 Optional venue link.
ATLocationEvent_ID int 否 0 Optional event link.
isWritingRequest bool 否 false Set true to actually create. Defaults false (dry-run).
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_new' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'name={{name}}' \
  --data-urlencode 'ATLocation_ID={{ATLocation_ID}}' \
  --data-urlencode 'ATLocationEvent_ID={{ATLocationEvent_ID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_set_new_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.ATFloorplan_IDinteger 是的
$.oneOf[0].allOf[1].Payload.ATFloorplanFloor_IDinteger 是的
$.oneOf[0].allOf[1].Payload.ATFloorplanLayout_IDinteger 是的
$.oneOf[0].allOf[1].Payload.editorURLstring 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_new",
    "RequestUserAlias": "example-user",
    "Payload": {
        "ATFloorplan_ID": 0,
        "ATFloorplanFloor_ID": 0,
        "ATFloorplanLayout_ID": 0,
        "editorURL": "synthetic-example"
    }
}
机器可读的端点文档
POST

/v1/floorplan/set_rejected

#
Reject a Submitted floorplan with a reviewer note. Gated by `Permission::CanReviewFloorplanSubmissions`.

参数

名称类型必填默认值描述
ATFloorplan_ID int 是的 — Floorplan to reject.
reason string 否 "" Short note for the originator.
isWritingRequest bool 否 false Set true to actually transition.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_rejected' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplan_ID={{ATFloorplan_ID}}' \
  --data-urlencode 'reason={{reason}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_set_rejected_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.Status = "Rejected" 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_rejected",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Status": "Rejected"
    }
}
机器可读的端点文档
POST

/v1/floorplan/set_submitted_for_review

#
Move a Draft floorplan into the moderation queue. Owner-only.

参数

名称类型必填默认值描述
ATFloorplan_ID int 是的 — Floorplan to submit.
isWritingRequest bool 否 false Set true to actually transition.
请求示例(cURL)
curl --request POST \
  'https://cn.appointmenttrader.com/v1/floorplan/set_submitted_for_review' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'ATFloorplan_ID={{ATFloorplan_ID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

返回值

JSON
See the shared response schema and synthetic example.
响应字段
字段类型必填描述
$floorplan_set_submitted_for_review_Response 是的
$.oneOf[0] 是的
$.oneOf[0].allOf[0]object 是的
$.oneOf[0].allOf[0].RequestUserAliasstring 是的
$.oneOf[0].allOf[0].RequestPathstring | null 是的
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" 是的
$.oneOf[0].allOf[0].ResponseCodeinteger 是的
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object 是的
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring 否
$.oneOf[0].allOf[1]object 是的
$.oneOf[0].allOf[1].Payloadobject 是的
$.oneOf[0].allOf[1].Payload.Status = "Submitted" 是的
$.oneOf[1]object 是的
$.oneOf[1].RequestUserAliasstring 是的
$.oneOf[1].RequestPathstring | null 是的
$.oneOf[1].RequestStatus = "Failed" 是的
$.oneOf[1].ResponseCodeinteger 是的
$.oneOf[1].ResponseMessageAPIResponseMessage 是的
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null 是的
$.oneOf[1].ResponseMessage.oneOf[1]array 是的
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage 否
$.oneOf[1].ResponseMessage.oneOf[2]object 是的
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage 否
$.oneOf[1].RequestImpersonatedByUserAliasstring 否
响应示例
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/floorplan/set_submitted_for_review",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Status": "Submitted"
    }
}
机器可读的端点文档