LGV_MeetingSDK_Meeting_Protocol

public protocol LGV_MeetingSDK_Meeting_Protocol : LGV_MeetingSDK_Additional_Info_Protocol

Each meeting instance will present itself as conforming to this protocol.

  • REQUIRED - The meeting organization.

    Declaration

    Swift

    var organization: LGV_MeetingSDK_Organization_Protocol? { get }
  • id

    REQUIRED - Each meeting should have a unique (in the search domain) integer ID.

    Note

    This is positive, and 1-based. 0 is an error.

    Declaration

    Swift

    var id: UInt64 { get set }
  • REQUIRED - The repeating weekday for the meeting (1-based, with 1 being Sunday, and 7 being Saturday).

    If this is 0, then the meeting is considered to be a one-time event, and the meetingStartTime property should be ignored (nextMeetingStartsOn will have the start time and day).

    Note

    1 is Sunday, regardless of the current region week start day.

    Declaration

    Swift

    var weekdayIndex: Int { get }
  • REQUIRED - The start time of the meeting, as military time (HHMM). This only applies, if (1...7).contains(weekday).

    Note

    0 is midnight (this morning), and 2400 is midnight (tonight).

    A meeting that starts at midnight, on Friday night (which is actually, midnight, Saturday morning), would have a weekday of 6, and a meetingStartTime of 2400.

    If we wanted to say the meeting starts on Saturday morning, instead, we would make the weekday 7, and a meetingStartTime of 0.

    Most meetings will probably choose the 2400/previous day format, as that is more “natural” to people.

    The nextMeetingStartsOn property will have the absolute time, in any case.

    Declaration

    Swift

    var meetingStartTime: Int { get }
  • REQUIRED - If the meeting has a physical presence, this will have the location. Nil, if no physical location.

    Note

    If this is not provided, then virtualMeetingInfo should be provided.

    Declaration

    Swift

    var physicalLocation: LGV_MeetingSDK_Meeting_Physical_Protocol? { get set }
  • REQUIRED - If the meeting has a virtual presence, this will have that information. Nil, if no virtual meeting.

    Note

    If this is not provided, then physicalLocation should be provided.

    Declaration

    Swift

    var virtualMeetingInfo: LGV_MeetingSDK_Meeting_Virtual_Protocol? { get set }
  • REQUIRED - If the meeting has formats, then this contains a list of them. Empty, if no formats.

    Declaration

    Swift

    var formats: [LGV_MeetingSDK_Format_Protocol] { get }
  • meetingType Default implementation

    OPTIONAL, AND SHOULD GENERALLY NOT BE IMPLEMENTED - The meeting venue type.

    Default Implementation

    Default figures out the meeting type, based on what venues are available.

    Declaration

    Swift

    var meetingType: LGV_MeetingSDK_VenueType_Enum { get }
  • startTime Default implementation

    OPTIONAL, AND SHOULD GENERALLY NOT BE IMPLEMENTED - Returns an optional DateComponents object, with the time of the meeting. Nil, if one-time event.

    Note

    This will not allow “2400” to be indicative of midnight. 23:59:59 is returned, if the meeting specifies “2400.”

    Default Implementation

    Default returns an optional DateComponents object, with the time of the meeting. This will not allow “2400” to be indicative of midnight. 23:59:59 is returned, if the meeting specifies “2400.”

    Declaration

    Swift

    var startTime: DateComponents? { get }
  • startTimeAndDay Default implementation

    OPTIONAL, AND SHOULD GENERALLY NOT BE IMPLEMENTED - Returns an optional DateComponents object, with the weekday and time of the meeting. Nil, if one-time event.

    Default Implementation

    Default returns an optional DateComponents object, with the weekday and time of the meeting. Returns nil, if the meeting weekday and/or start time is invalid.

    Declaration

    Swift

    var startTimeAndDay: DateComponents? { get }
  • startTimeInSeconds Default implementation

    OPTIONAL, AND SHOULD GENERALLY NOT BE IMPLEMENTED - The start time, in seconds.

    Default Implementation

    Default simply calculates the start time from the components of the military time.

    Declaration

    Swift

    var startTimeInSeconds: TimeInterval? { get }
  • durationInMinutes Default implementation

    OPTIONAL, AND SHOULD GENERALLY NOT BE IMPLEMENTED - The duration in minutes.

    Default Implementation

    Default simply divides the seconds duration into minutes.

    Declaration

    Swift

    var durationInMinutes: Int { get }
  • adjustedWeekdayIndex Default implementation

    OPTIONAL, AND SHOULD GENERALLY NOT BE IMPLEMENTED - The weekday, adjusted for the start of week.

    Default Implementation

    Default returns the adjusted weekday. Note that this should only be used, when accounting for different week starts.

    Declaration

    Swift

    var adjustedWeekdayIndex: Int { get }
  • locationCoords Default implementation

    OPTIONAL, AND SHOULD GENERALLY NOT BE IMPLEMENTED - A direct accessor for the physical location coordinates.

    Note

    Virtual-only meetings may either have no coords, or may return an invalid coordinate.

    Default Implementation

    Default gets the coordinates from the physical location. May be nil, or an invalid location.

    Declaration

    Swift

    var locationCoords: CLLocationCoordinate2D? { get }
  • meetingLocalTimezone Default implementation

    OPTIONAL, AND SHOULD GENERALLY NOT BE IMPLEMENTED - The local timezone of the meeting.

    Note

    This may not be useful, if the meeting does not have a timezone.

    Default Implementation

    Default tries to get the timezone from the physical address first, then the virtual, and failing that, our local timezone.

    Declaration

    Swift

    var meetingLocalTimezone: TimeZone { get }
  • simpleLocationText Default implementation

    OPTIONAL, AND SHOULD GENERALLY NOT BE IMPLEMENTED - This gives a “summarized” location. If the meeting is virtual-only, this will be nil.

    Default Implementation

    Default mines the physical location for a postal address, and uses that.

    Declaration

    Swift

    var simpleLocationText: String? { get }
  • nextStartDate Default implementation

    OPTIONAL - The next meeting (from now) will start on this date (time).

    If this is a one-time event, then this will be the only indicator of the meeting start time/date.

    In normal weekly meetings, this should not need to be implemented.

    Default Implementation

    By default, this calculates and returns the date of a repeating weekly meeting, and returns the next time the meeting will gather, after now.

    If the meeting is not a recurring weekly meeting, this should be implemented by the conforming class.

    Declaration

    Swift

    var nextStartDate: Date? { get }
  • name Default implementation

    OPTIONAL - The name for this meeting.

    Default Implementation

    Default is an empty String.

    Declaration

    Swift

    var name: String { get }
  • distanceInMeters Default implementation

    OPTIONAL - The distance of this meetings from the search.

    Default Implementation

    Default is maximum value of the float.

    Declaration

    Swift

    var distanceInMeters: CLLocationDistance { get set }
  • meetingDuration Default implementation

    OPTIONAL - The duration of the meeting, in seconds.

    Default Implementation

    Default is 0

    Declaration

    Swift

    var meetingDuration: TimeInterval { get }
  • comments Default implementation

    OPTIONAL - If the meeting has comments associated, they will be here, as a String. Empty, if no comments.

    Default Implementation

    Default is an Empty String

    Declaration

    Swift

    var comments: String { get }
  • meetingURI Default implementation

    OPTIONAL - If the meeting has a URI (not a virtual meeting URI -for example, a Group Web site), that is available here.

    Default Implementation

    Default is Nil

    Declaration

    Swift

    var meetingURI: URL? { get }