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 }
-
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 ameetingStartTime
of 2400.If we wanted to say the meeting starts on Saturday morning, instead, we would make the
weekday
7, and ameetingStartTime
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 implementationOPTIONAL, 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 implementationOPTIONAL, 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 implementationOPTIONAL, 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 implementationOPTIONAL, 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 implementationOPTIONAL, 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 implementationOPTIONAL, 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 implementationOPTIONAL, 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 implementationOPTIONAL, 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 implementationOPTIONAL, 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 implementationOPTIONAL - 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 implementationOPTIONAL - The name for this meeting.
Default Implementation
Default is an empty String.
Declaration
Swift
var name: String { get }
-
distanceInMeters
Default implementationOPTIONAL - 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 implementationOPTIONAL - The duration of the meeting, in seconds.
Default Implementation
Default is 0
Declaration
Swift
var meetingDuration: TimeInterval { get }
-
comments
Default implementationOPTIONAL - 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 implementationOPTIONAL - 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 }