Performer
final class Performer : Model
An official performer or shadow event organizer on the cruise. Generally, official performers are those listed on the JoCo website. Shadow Event organizers are people who are running shadow events on the official schedule.
The records for official performers are imported in bulk, but shadow event organizers can self-create a Perfomer profile and attach it to the event(s) they’re running. For shadow event organizers, their Performer profile MUST be linked to their user (as it’s user-created content), and a user cannot have different profiles for different events. Also, while official performers usually have relations to events on the schedule, they don’t need to. Shadow event organizers profiles must be created with a relation to the event they’re running.
Because it’s often the case that there’s at least one late change to the official lineup, these models can be soft-deleted by admin, which should be easier to manage than delete-on-update logic.This also gives the technical ability to list performers who weren’t able to make it aboard. I haven’t checked whether this is information we can actually provide–there may be contractual issues or something.
-
Declaration
Swift
static let schema: String
-
Declaration
Swift
@ID var id: UUID?
-
Individual or band name. This is the full name, even though
sortOrder
below is usually the last name.Declaration
Swift
@Field var name: String
-
Generally, the last name of the performer, although it could be the first non-‘the’ word if it’s a band name. Should only be used for sorting. Should be uppercased.
Declaration
Swift
@Field var sortOrder: String
-
Shadow event organizers relate their Performer model to their User, therefore the User’s pronouns field is theoretically available, but don’t use it in the context of Performers. Also, official performers aren’t associated with any user.
Declaration
Swift
@OptionalField var pronouns: String?
-
The bio string may contain Markdown, and can be up to 20000 characters.
Declaration
Swift
@OptionalField var bio: String?
-
Photo of the performer
Declaration
Swift
@OptionalField var photo: String?
-
Organization, Company or Band Name
Declaration
Swift
@OptionalField var organization: String?
-
Title, if any
Declaration
Swift
@OptionalField var title: String?
-
Performer’s website, if any
Declaration
Swift
@OptionalField var website: String?
-
Performer’s Facebook link, if any
Declaration
Swift
@OptionalField var facebookURL: String?
-
Performer’s X link, if any
Declaration
Swift
@OptionalField var xURL: String?
-
Performer’s Instagram link, if any
Declaration
Swift
@OptionalField var instagramURL: String?
-
Performer’s Youtube link, if any
Declaration
Swift
@OptionalField var youtubeURL: String?
-
Which years the performer has attended/will attend JoCo, as an array of Ints in the range 2011…
. Declaration
Swift
@Field var yearsAttended: [Int]
-
TRUE if this is one of the JoCo official performers. FALSE if it’s a shadow event organizer.
Declaration
Swift
@Field var officialPerformer: Bool
-
Timestamp of the model’s soft-deletion, set automatically.
Declaration
Swift
@Timestamp var deletedAt: Date?
-
Will be nil for official performers. For shadow event organizers, this is the User that created the content. The Twitarr User that created a Performer Profile for their event is generally not shown in the UI.
Declaration
Swift
@OptionalParent var user: User?
-
Declaration
Swift
@Siblings var events: [Event]