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

import Foundation

public struct NotificationPersonaSchema: Codable, Equatable, Identifiable {
    public var createdAt: Date
    public var id: UUID
    public var isRead: Bool
    public var notificationType: NotificationType?
    /// MiniPersonaSchema
    public var reactContent: MiniPersonaSchema
    public var totalUsers: Int?
    public var userProfiles: [MiniProfileSchema]

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

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

        public static let personaFollow = Self(rawValue: "persona_follow")
        public static let personaFavorite = Self(rawValue: "persona_favorite")
        public static let personaUsed = Self(rawValue: "persona_used")
    }

    public init(createdAt: Date, id: UUID, isRead: Bool? = nil, notificationType: NotificationType? = nil, reactContent: MiniPersonaSchema, totalUsers: Int? = nil, userProfiles: [MiniProfileSchema]) {
        self.createdAt = createdAt
        self.id = id
        self.isRead = isRead ?? false
        self.notificationType = notificationType
        self.reactContent = reactContent
        self.totalUsers = totalUsers
        self.userProfiles = userProfiles
    }
}
