110 lines · 4.6 KB · Swift
RawDownload
import CodexBarCoreimport 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        }    }}