111 lines
4.6 KiB
Swift
111 lines
4.6 KiB
Swift
import CodexBarCore
|
|
import Foundation
|
|
|
|
extension UsageMenuCardView.Model {
|
|
struct Input {
|
|
let provider: UsageProvider
|
|
let metadata: ProviderMetadata
|
|
let snapshot: UsageSnapshot?
|
|
let codexProjection: CodexConsumerProjection?
|
|
let credits: CreditsSnapshot?
|
|
let creditsError: String?
|
|
let dashboard: OpenAIDashboardSnapshot?
|
|
let dashboardError: String?
|
|
let tokenSnapshot: CostUsageTokenSnapshot?
|
|
let tokenError: String?
|
|
let account: AccountInfo
|
|
let accountIsAuthoritative: Bool
|
|
let planOverride: String?
|
|
let isRefreshing: Bool
|
|
let lastError: String?
|
|
let limitsAvailability: UsageLimitsAvailability?
|
|
let usageBarsShowUsed: Bool
|
|
let resetTimeDisplayStyle: ResetTimeDisplayStyle
|
|
let tokenCostUsageEnabled: Bool
|
|
let tokenCostInlineDashboardEnabled: Bool
|
|
let tokenCostMenuSectionEnabled: Bool
|
|
let costComparisonPeriodsEnabled: Bool
|
|
let showOptionalCreditsAndExtraUsage: Bool
|
|
let codexSparkUsageVisible: Bool
|
|
let copilotBudgetExtrasEnabled: Bool
|
|
let sourceLabel: String?
|
|
let kiloAutoMode: Bool
|
|
let hidePersonalInfo: Bool
|
|
let weeklyPace: UsagePace?
|
|
let quotaWarningThresholds: [QuotaWarningWindow: [Int]]
|
|
let workDaysPerWeek: Int?
|
|
let usesLiveSubtitle: Bool
|
|
let now: Date
|
|
|
|
init(
|
|
provider: UsageProvider,
|
|
metadata: ProviderMetadata,
|
|
snapshot: UsageSnapshot?,
|
|
codexProjection: CodexConsumerProjection? = nil,
|
|
credits: CreditsSnapshot?,
|
|
creditsError: String?,
|
|
dashboard: OpenAIDashboardSnapshot?,
|
|
dashboardError: String?,
|
|
tokenSnapshot: CostUsageTokenSnapshot?,
|
|
tokenError: String?,
|
|
account: AccountInfo,
|
|
accountIsAuthoritative: Bool = false,
|
|
planOverride: String? = nil,
|
|
isRefreshing: Bool,
|
|
lastError: String?,
|
|
limitsAvailability: UsageLimitsAvailability? = nil,
|
|
usageBarsShowUsed: Bool,
|
|
resetTimeDisplayStyle: ResetTimeDisplayStyle,
|
|
tokenCostUsageEnabled: Bool,
|
|
tokenCostInlineDashboardEnabled: Bool? = nil,
|
|
tokenCostMenuSectionEnabled: Bool? = nil,
|
|
costComparisonPeriodsEnabled: Bool = false,
|
|
showOptionalCreditsAndExtraUsage: Bool,
|
|
codexSparkUsageVisible: Bool = true,
|
|
copilotBudgetExtrasEnabled: Bool = false,
|
|
sourceLabel: String? = nil,
|
|
kiloAutoMode: Bool = false,
|
|
hidePersonalInfo: Bool,
|
|
weeklyPace: UsagePace? = nil,
|
|
quotaWarningThresholds: [QuotaWarningWindow: [Int]] = [:],
|
|
workDaysPerWeek: Int? = nil,
|
|
usesLiveSubtitle: Bool = false,
|
|
now: Date)
|
|
{
|
|
self.provider = provider
|
|
self.metadata = metadata
|
|
self.snapshot = snapshot
|
|
self.codexProjection = codexProjection
|
|
self.credits = credits
|
|
self.creditsError = creditsError
|
|
self.dashboard = dashboard
|
|
self.dashboardError = dashboardError
|
|
self.tokenSnapshot = tokenSnapshot
|
|
self.tokenError = tokenError
|
|
self.account = account
|
|
self.accountIsAuthoritative = accountIsAuthoritative
|
|
self.planOverride = planOverride
|
|
self.isRefreshing = isRefreshing
|
|
self.lastError = lastError
|
|
self.limitsAvailability = limitsAvailability
|
|
self.usageBarsShowUsed = usageBarsShowUsed
|
|
self.resetTimeDisplayStyle = resetTimeDisplayStyle
|
|
self.tokenCostUsageEnabled = tokenCostUsageEnabled
|
|
self.tokenCostInlineDashboardEnabled = tokenCostInlineDashboardEnabled ?? tokenCostUsageEnabled
|
|
self.tokenCostMenuSectionEnabled = tokenCostMenuSectionEnabled ?? tokenCostUsageEnabled
|
|
self.costComparisonPeriodsEnabled = costComparisonPeriodsEnabled
|
|
self.showOptionalCreditsAndExtraUsage = showOptionalCreditsAndExtraUsage
|
|
self.codexSparkUsageVisible = codexSparkUsageVisible
|
|
self.copilotBudgetExtrasEnabled = copilotBudgetExtrasEnabled
|
|
self.sourceLabel = sourceLabel
|
|
self.kiloAutoMode = kiloAutoMode
|
|
self.hidePersonalInfo = hidePersonalInfo
|
|
self.weeklyPace = weeklyPace
|
|
self.quotaWarningThresholds = quotaWarningThresholds
|
|
self.workDaysPerWeek = workDaysPerWeek
|
|
self.usesLiveSubtitle = usesLiveSubtitle
|
|
self.now = now
|
|
}
|
|
}
|
|
}
|