Trendsic Platform Service

<back to all web services

CustomersInLine

The following routes are available for this service:
GET/v1/CustomersInLine
GET/v1/CustomersInLine/{LocationId}
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PaperworkAsks:
    questionnaire: bool = False
    upload: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CustomerInLineObject:
    checkin_id: Optional[str] = None
    visit_key: Optional[str] = None
    name: Optional[str] = None
    say_name_as: Optional[str] = None
    line: Optional[str] = None
    description: Optional[str] = None
    service_id: Optional[str] = None
    status: int = 0
    sign_in_time: datetime.datetime = datetime.datetime(1, 1, 1)
    adjusted_sign_in_time: datetime.datetime = datetime.datetime(1, 1, 1)
    arrived_time: Optional[datetime.datetime] = None
    send_reminders: bool = False
    called_time: Optional[datetime.datetime] = None
    ticket_label: Optional[str] = None
    station_id: Optional[str] = None
    station_name: Optional[str] = None
    id: Optional[str] = None
    full_name: Optional[str] = None
    task_time: Optional[int] = None
    completed: Optional[bool] = None
    completed_time: Optional[datetime.datetime] = None
    employee_id: Optional[str] = None
    employee: Optional[str] = None
    questionnaire_submitted: Optional[bool] = None
    hold_reason: Optional[str] = None
    hold_expected_utc: Optional[datetime.datetime] = None
    returned_time: Optional[datetime.datetime] = None
    contact_id: Optional[int] = None
    mobile_phone: Optional[str] = None
    source: Optional[str] = None
    last_moved_from: Optional[str] = None
    last_moved_utc: Optional[datetime.datetime] = None
    priority_time: Optional[datetime.datetime] = None
    hold_by_name: Optional[str] = None
    hold_by_station_name: Optional[str] = None
    hold_since_utc: Optional[datetime.datetime] = None
    ticket_no: Optional[int] = None
    note_count: Optional[int] = None
    has_carry_note: Optional[bool] = None
    carry_note_by: Optional[str] = None
    carry_note_at_utc: Optional[datetime.datetime] = None
    paperwork_asks: Optional[PaperworkAsks] = None
    document_count: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LobbySettings:
    location_id: Optional[str] = None
    wait_source: Optional[str] = None
    monitor_chime: Optional[str] = None
    has_uploaded_chime: bool = False
    chime_url: Optional[str] = None
    monitor_volume: int = 0
    monitor_announce: bool = False
    monitor_announce_template: Optional[str] = None
    monitor_voice: Optional[str] = None
    monitor_voice_lang: Optional[str] = None
    monitor_voice_rate: Decimal = decimal.Decimal(0)
    monitor_repeat_after_sec: Optional[int] = None
    monitor_ticket_only: bool = False
    lobby_zone_mode: Optional[str] = None
    lobby_takeover_every_min: Optional[int] = None
    lobby_takeover_sec: Optional[int] = None
    lobby_idle_screen: bool = False
    time_zone: Optional[str] = None
    monitor_show_services: Optional[bool] = None
    lobby_tv_count: Optional[int] = None
    ticket_prefix: Optional[str] = None
    lobby_density: Optional[str] = None
    lobby_idle_mode: Optional[str] = None
    lobby_idle_content_id: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StationSessionView:
    session_id: Optional[str] = None
    location_id: Optional[str] = None
    station_id: Optional[str] = None
    station_name: Optional[str] = None
    employee_id: Optional[str] = None
    employee_name: Optional[str] = None
    signed_in_utc: datetime.datetime = datetime.datetime(1, 1, 1)
    last_seen_utc: datetime.datetime = datetime.datetime(1, 1, 1)
    paused_since_utc: Optional[datetime.datetime] = None
    pause_reason: Optional[str] = None
    home_branch_id: Optional[str] = None
    home_branch_name: Optional[str] = None
    is_mine: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CustomersInLineResponse:
    response_status: Optional[ResponseStatus] = None
    customers: List[CustomerInLineObject] = field(default_factory=list)
    location_name: Optional[str] = None
    monitor_show_services: Optional[bool] = None
    lobby: Optional[LobbySettings] = None
    workspace_name: Optional[str] = None
    station_term: Optional[str] = None
    sessions: List[StationSessionView] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CustomersInLine:
    api_key: Optional[str] = None
    location_id: Optional[str] = None
    client_is_loading: bool = False

Python CustomersInLine DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/CustomersInLine HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Customers":[{"CheckinId":"00000000000000000000000000000000","VisitKey":"00000000000000000000000000000000","Name":"String","SayNameAs":"String","Line":"String","Description":"String","ServiceId":"00000000000000000000000000000000","Status":0,"SignInTime":"0001-01-01T00:00:00.0000000","AdjustedSignInTime":"0001-01-01T00:00:00.0000000","ArrivedTime":"0001-01-01T00:00:00.0000000","SendReminders":false,"CalledTime":"0001-01-01T00:00:00.0000000","TicketLabel":"String","StationId":"00000000000000000000000000000000","StationName":"String","Id":"00000000000000000000000000000000","FullName":"String","TaskTime":0,"Completed":false,"CompletedTime":"0001-01-01T00:00:00.0000000","EmployeeId":"00000000000000000000000000000000","Employee":"String","QuestionnaireSubmitted":false,"HoldReason":"String","HoldExpectedUtc":"0001-01-01T00:00:00.0000000","ReturnedTime":"0001-01-01T00:00:00.0000000","ContactId":0,"MobilePhone":"String","Source":"String","LastMovedFrom":"String","LastMovedUtc":"0001-01-01T00:00:00.0000000","PriorityTime":"0001-01-01T00:00:00.0000000","HoldByName":"String","HoldByStationName":"String","HoldSinceUtc":"0001-01-01T00:00:00.0000000","TicketNo":0,"NoteCount":0,"HasCarryNote":false,"CarryNoteBy":"String","CarryNoteAtUtc":"0001-01-01T00:00:00.0000000","PaperworkAsks":{"Questionnaire":false,"Upload":false},"DocumentCount":0}],"LocationName":"String","MonitorShowServices":false,"Lobby":{"LocationId":"00000000000000000000000000000000","WaitSource":"String","MonitorChime":"String","HasUploadedChime":false,"ChimeUrl":"String","MonitorVolume":0,"MonitorAnnounce":false,"MonitorAnnounceTemplate":"String","MonitorVoice":"String","MonitorVoiceLang":"String","MonitorVoiceRate":0,"MonitorRepeatAfterSec":0,"MonitorTicketOnly":false,"LobbyZoneMode":"String","LobbyTakeoverEveryMin":0,"LobbyTakeoverSec":0,"LobbyIdleScreen":false,"TimeZone":"String","MonitorShowServices":false,"LobbyTvCount":0,"TicketPrefix":"String","LobbyDensity":"String","LobbyIdleMode":"String","LobbyIdleContentId":0},"WorkspaceName":"String","StationTerm":"String","Sessions":[{"SessionId":"00000000000000000000000000000000","LocationId":"00000000000000000000000000000000","StationId":"00000000000000000000000000000000","StationName":"String","EmployeeId":"00000000000000000000000000000000","EmployeeName":"String","SignedInUtc":"0001-01-01T00:00:00.0000000","LastSeenUtc":"0001-01-01T00:00:00.0000000","PausedSinceUtc":"0001-01-01T00:00:00.0000000","PauseReason":"String","HomeBranchId":"00000000000000000000000000000000","HomeBranchName":"String","IsMine":false}]}