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

import Foundation

/// Schema for user profile and subscription info returned by the OAuth endpoint.
public struct ExternalUserInfoSchema: Codable, Equatable {
    public var avatarUrl: String?
    public var displayName: String
    public var email: String
    public var handle: String
    public var isSubscriber: Bool
    public var monthlyLimit: Int
    public var monthlyUsage: Int
    public var planLevel: String?
    public var planName: String?
    public var planPeriod: String?
    public var subscriptionPlatform: String?
    public var subscriptionStatus: String?
    public var totalCreditsRemaining: Int
    public var userId: String

    public init(avatarUrl: String? = nil, displayName: String, email: String, handle: String, isSubscriber: Bool, monthlyLimit: Int, monthlyUsage: Int, planLevel: String? = nil, planName: String? = nil, planPeriod: String? = nil, subscriptionPlatform: String? = nil, subscriptionStatus: String? = nil, totalCreditsRemaining: Int, userId: String) {
        self.avatarUrl = avatarUrl
        self.displayName = displayName
        self.email = email
        self.handle = handle
        self.isSubscriber = isSubscriber
        self.monthlyLimit = monthlyLimit
        self.monthlyUsage = monthlyUsage
        self.planLevel = planLevel
        self.planName = planName
        self.planPeriod = planPeriod
        self.subscriptionPlatform = subscriptionPlatform
        self.subscriptionStatus = subscriptionStatus
        self.totalCreditsRemaining = totalCreditsRemaining
        self.userId = userId
    }
}
