"use client"
import Link from "next/link"
import { AutomationTabMasonry } from "@/components/gmail/settings/automation/automation-tab-masonry"
import {
SettingsCard,
SettingsField,
SettingsGrid,
} from "@/components/settings/settings-kit"
import { OrgSettingsSection } from "@/components/admin/settings/org-settings-form"
import { useOrgSettingsStore } from "@/lib/admin-settings/org-settings-store"
import { Button } from "@/components/ui/button"
import {
InputGroup,
InputGroupAddon,
InputGroupInput,
InputGroupText,
} from "@/components/ui/input-group"
import { cn } from "@/lib/utils"
export function QuotasSection() {
const storageQuotas = useOrgSettingsStore((s) => s.storageQuotas)
const setStorageQuotas = useOrgSettingsStore((s) => s.setStorageQuotas)
const usageQuotas = useOrgSettingsStore((s) => s.usageQuotas)
const setUsageQuotas = useOrgSettingsStore((s) => s.setUsageQuotas)
return (
setStorageQuotas({ default_mail_gib: v })}
/>
setStorageQuotas({ default_drive_gib: v })}
/>
setStorageQuotas({ default_photos_gib: v })}
/>
setStorageQuotas({ warn_threshold_pct: v })}
/>
setUsageQuotas({ llm_daily_cost_limit_eur: v })}
/>
setUsageQuotas({ llm_monthly_cost_limit_eur: v })}
/>
setUsageQuotas({ llm_cost_warn_threshold_pct: v })}
/>
setUsageQuotas({ search_requests_per_day: v })}
/>
setUsageQuotas({ max_api_tokens_per_user: v })}
/>
setUsageQuotas({ max_webhooks_per_user: v })}
/>
)
}
function QuotaInput({
label,
unit,
value,
onChange,
}: {
label: string
unit: string
value: number
onChange: (v: number) => void
}) {
return (
)
}
function SettingsNumberField({
label,
unit,
value,
onChange,
min = 0,
max,
step,
fallback = 0,
className,
}: {
label: string
unit: string
value: number
onChange: (v: number) => void
min?: number
max?: number
step?: number
fallback?: number
className?: string
}) {
return (
onChange(Number(e.target.value) || fallback)}
/>
{unit}
)
}