Other Classes

The following classes are available globally.

  • Helper for random crypto related stuff.

    See more

    Declaration

    Swift

    final class CryptoHelper
  • Declaration

    Swift

    final class ICSHelper
  • Declaration

    Swift

    final public class ValidatingDecoder : Decoder
  • Declaration

    Swift

    final public class DecoderProxy<OutputType> : Decodable where OutputType : Decodable
  • Declaration

    Swift

    public class ValidatingJSONDecoder
  • Image wrapper backed by libvips. Manages a VipsImage pointer with automatic cleanup. Operations return new instances — vips images are immutable.

    See more

    Declaration

    Swift

    public class SwiftarrImage
  • Base class for the Sched schedule update job. This is common between the AsyncScheduledJob and AsyncJob.

    See more

    Declaration

    Swift

    class UpdateScheduleJobBase
  • A feedback report from a Shadow Event Host.

    THO asks those who host shadow events to fill out a feedback form after their event to tell THO how their event went. This is the db model that stores that data.

    See

    See Also: EventFeedbackData the POST data containg the web form contents

    See

    See Also: EventFeedbackReport feedback data returned by several API calls
    See more

    Declaration

    Swift

    final class EventFeedback : Model, @unchecked Sendable
  • Declaration

    Swift

    final class MKSnippet : Model, @unchecked Sendable
    extension MKSnippet: Reportable
  • Declaration

    Swift

    final class MKSong : Model, @unchecked Sendable
    extension MKSong: Reportable
  • 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.

    See more

    Declaration

    Swift

    final class Performer : Model, @unchecked Sendable
  • A QuartermasterItem is a single entry on the Quartermaster “have / need” board.

    Any logged-in user can post an item they have to offer or an item they are looking for. Each entry may optionally specify a free-text location, and may hide the owner’s name from other users. When the owner’s name is hidden, a location is required, since it becomes the only way for other users to identify how to find the item (validated in the controller).

    Items are searchable, filterable by category (have/need) and by owner, and are individually reportable to the mod queue. Moderators may quarantine or delete entries exactly as they do for forum posts. Edits to text fields are snapshotted in QuartermasterItemEdit for accountability.

    See

    See Also: QuartermasterData the DTO for returning item data.

    See

    See Also: QuartermasterContentData the DTO for creating or editing items.

    See

    See Also: CreateQuartermasterItemSchema the Migration creating the table.
    See more

    Declaration

    Swift

    final class QuartermasterItem : Model, Searchable, @unchecked Sendable
    extension QuartermasterItem: Reportable
    extension QuartermasterItem: ContentFilterable
  • When the TEXT FIELDS of a QuartermasterItem are edited, a QuartermasterItemEdit is created to save the previous values of those text fields, plus the hideOwnerName setting.

    Edits that only change the category — without touching item_name, item_description, location, or hideOwnerName — do not create a QuartermasterItemEdit. This is done for accountability purposes; the data collected is intended to be viewable only by moderators.

    See

    See Also: QuartermasterModerationData the DTO returning data moderators need to review items. Specifically, QuartermasterEditLogData delivers values from the QuartermasterItemEdit.

    See

    See Also: CreateQuartermasterItemEditSchema the Migration for creating the QuartermasterItemEdit table.
    See more

    Declaration

    Swift

    final class QuartermasterItemEdit : Model, @unchecked Sendable
  • ScheduleLog records changes made to the events in the schedule, both by manual schedule updates (done by uploading a .ics file) and automatic schedule updates (where the server periodically queries Sched.com and applies changes automatically).

    See more

    Declaration

    Swift

    final class ScheduleLog : Model, @unchecked Sendable
  • A photo to be shown in the photo stream. Currently, photo stream photos:

    • are non-editable and non-deletable by the author
    • may be deleted by moderators. The ‘locked’ state may be applied as well, but does nothing.
    See more

    Declaration

    Swift

    final class StreamPhoto : Model, @unchecked Sendable
    extension StreamPhoto: Reportable
  • Declaration

    Swift

    final class EventPerformer : Model, @unchecked Sendable