// Generated by Create API
// https://github.com/CreateAPI/CreateAPI

import Foundation

public struct FollowingFeedItemSchema: Codable, Equatable {
    /// FeedActivityType
    public var activityType: FeedActivityType
    /// GeneratedClipSchema
    public var clipSchema: GeneratedClipSchema?
    public var commentSchema: CommentSchema?
    public var entityType: EntityType?
    public var feedTimestamp: Date
    /// SimpleProfileInfoSchema
    public var followedUserProfile: SimpleProfileInfoSchema?
    public var personaSchema: PersonaSchema?
    /// SimpleProfileInfoSchema
    public var profileSchema: SimpleProfileInfoSchema?

    public struct EntityType: RawRepresentable, Codable, Equatable {
        public let rawValue: String

        public init(rawValue: String) {
            self.rawValue = rawValue
        }

        public static let followingFeedItemSchema = Self(rawValue: "following_feed_item_schema")
    }

    public init(activityType: FeedActivityType, clipSchema: GeneratedClipSchema? = nil, commentSchema: CommentSchema? = nil, entityType: EntityType? = nil, feedTimestamp: Date, followedUserProfile: SimpleProfileInfoSchema? = nil, personaSchema: PersonaSchema? = nil, profileSchema: SimpleProfileInfoSchema? = nil) {
        self.activityType = activityType
        self.clipSchema = clipSchema
        self.commentSchema = commentSchema
        self.entityType = entityType
        self.feedTimestamp = feedTimestamp
        self.followedUserProfile = followedUserProfile
        self.personaSchema = personaSchema
        self.profileSchema = profileSchema
    }
}
