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

import Foundation

public struct NotificationAnnouncementSchema: Codable, Equatable, Identifiable {
    public var createdAt: Date
    public var id: UUID
    public var isRead: Bool
    public var message: String
    public var notificationType: NotificationType?
    /// MiniClipOrPlaylistSchema
    public var reactContent: MiniClipOrPlaylistSchema?

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

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

        public static let announcement = Self(rawValue: "announcement")
    }

    public init(createdAt: Date, id: UUID, isRead: Bool? = nil, message: String, notificationType: NotificationType? = nil, reactContent: MiniClipOrPlaylistSchema? = nil) {
        self.createdAt = createdAt
        self.id = id
        self.isRead = isRead ?? false
        self.message = message
        self.notificationType = notificationType
        self.reactContent = reactContent
    }
}
