0bb384e7-e18c-49c5-b7ef-fe73701ab6ab
This commit is contained in:
1 parent
c4d338ee48
commit
8c34778db3
8 files changed
+121
-52
No files matched your search
@@ -135,8 +135,8 @@ export function AgencyView() {
|
||||
return (
|
||||
<div className="space-y-6 p-4 md:p-6">
|
||||
<PageHeader
|
||||
title="Bayis"
|
||||
description="Reseller-Verwaltung: Bayi-Bewerbungen prüfen, Rabatt-Sätze festlegen (0–20 %) und genehmigte Bayis mit ihren Kunden einsehen."
|
||||
title="Reseller"
|
||||
description="Reseller-Verwaltung: Bewerbungen prüfen, Rabatt-Sätze festlegen (0–20 %) und genehmigte Reseller mit ihren Kunden einsehen."
|
||||
/>
|
||||
|
||||
{/* Stats */}
|
||||
@@ -148,7 +148,7 @@ export function AgencyView() {
|
||||
hint="wartet auf Freigabe"
|
||||
/>
|
||||
<StatCard
|
||||
label="Genehmigte Bayis"
|
||||
label="Genehmigte Reseller"
|
||||
value={stats.approved}
|
||||
icon={Users}
|
||||
hint="aktiv im System"
|
||||
@@ -163,7 +163,7 @@ export function AgencyView() {
|
||||
label="Ø Rabatt"
|
||||
value={`${avgDiscount}%`}
|
||||
icon={Percent}
|
||||
hint={agencies.length ? `über ${agencies.length} Bayis` : '—'}
|
||||
hint={agencies.length ? `über ${agencies.length} Reseller` : '—'}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -215,7 +215,7 @@ function PendingApplicationsSection({
|
||||
<section className="space-y-3">
|
||||
<div className="flex items-center justify-between">
|
||||
<h2 className="text-sm font-semibold tracking-tight">
|
||||
Bewerbende Bayis
|
||||
Bewerbende Reseller
|
||||
<span className="ml-2 text-xs font-normal text-muted-foreground">
|
||||
{applications.length} offen
|
||||
</span>
|
||||
@@ -230,7 +230,7 @@ function PendingApplicationsSection({
|
||||
<div className="space-y-1">
|
||||
<p className="text-sm font-medium">Keine bewerbenden Anfragen</p>
|
||||
<p className="max-w-sm text-xs text-muted-foreground">
|
||||
Neue Bayi-Bewerbungen erscheinen hier.
|
||||
Neue Reseller-Bewerbungen erscheinen hier.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -393,11 +393,11 @@ function ApproveDialog({
|
||||
<DialogHeader>
|
||||
<DialogTitle className="flex items-center gap-2">
|
||||
<CheckCircle2 className="size-4" />
|
||||
Bayi-Bewerbung genehmigen
|
||||
Reseller-Bewerbung genehmigen
|
||||
</DialogTitle>
|
||||
<DialogDescription>
|
||||
<span className="font-medium text-foreground">{application.company.name}</span> wird
|
||||
als Bayi freigeschaltet. Der Rabatt wird auf alle vom Bayi angelegten Kundenlizenzierungen
|
||||
als Reseller freigeschaltet. Der Rabatt wird auf alle vom Reseller angelegten Kundenlizenzierungen
|
||||
angewendet.
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
@@ -524,7 +524,7 @@ function RejectDialog({
|
||||
<DialogHeader>
|
||||
<DialogTitle className="flex items-center gap-2">
|
||||
<XCircle className="size-4" />
|
||||
Bayi-Bewerbung ablehnen
|
||||
Reseller-Bewerbung ablehnen
|
||||
</DialogTitle>
|
||||
<DialogDescription>
|
||||
<span className="font-medium text-foreground">{application.company.name}</span>
|
||||
@@ -577,7 +577,7 @@ function ApprovedAgenciesSection({ agencies }: { agencies: ApprovedAgency[] }) {
|
||||
<section className="space-y-3">
|
||||
<div className="flex items-center justify-between">
|
||||
<h2 className="text-sm font-semibold tracking-tight">
|
||||
Genehmigte Bayis
|
||||
Genehmigte Reseller
|
||||
<span className="ml-2 text-xs font-normal text-muted-foreground">
|
||||
{agencies.length} aktiv
|
||||
</span>
|
||||
@@ -590,23 +590,23 @@ function ApprovedAgenciesSection({ agencies }: { agencies: ApprovedAgency[] }) {
|
||||
<Users className="size-5 text-muted-foreground" />
|
||||
</div>
|
||||
<div className="space-y-1">
|
||||
<p className="text-sm font-medium">Noch keine Bayis genehmigt</p>
|
||||
<p className="text-sm font-medium">Noch keine Reseller genehmigt</p>
|
||||
<p className="max-w-sm text-xs text-muted-foreground">
|
||||
Genehmigte Bayi-Bewerbungen erscheinen hier mit ihren Kunden und Lizenzen.
|
||||
Genehmigte Reseller-Bewerbungen erscheinen hier mit ihren Kunden und Lizenzen.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<Card>
|
||||
<CardHeader className="pb-2">
|
||||
<CardTitle className="text-sm">Bayis ({agencies.length})</CardTitle>
|
||||
<CardTitle className="text-sm">Reseller ({agencies.length})</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="p-0">
|
||||
<div className="overflow-x-auto">
|
||||
<table className="w-full text-sm">
|
||||
<thead className="border-y border-border bg-muted/40 text-left text-[11px] uppercase tracking-wide text-muted-foreground">
|
||||
<tr>
|
||||
<th className="px-4 py-2 font-medium">Bayi</th>
|
||||
<th className="px-4 py-2 font-medium">Reseller</th>
|
||||
<th className="px-4 py-2 font-medium">Rabatt</th>
|
||||
<th className="px-4 py-2 font-medium text-right">Kunden</th>
|
||||
<th className="px-4 py-2 font-medium text-right">Lizenzen</th>
|
||||
@@ -692,7 +692,7 @@ function ClientsSheet({
|
||||
{agency.name}
|
||||
</SheetTitle>
|
||||
<SheetDescription>
|
||||
Bayi-Kundenverwaltung — {agency._count.agencyClients} Kunde(n),{' '}
|
||||
Reseller-Kundenverwaltung — {agency._count.agencyClients} Kunde(n),{' '}
|
||||
{agency._count.licenses} Lizenz(en).
|
||||
</SheetDescription>
|
||||
</SheetHeader>
|
||||
@@ -702,8 +702,8 @@ function ClientsSheet({
|
||||
<div className="mb-3 flex items-start gap-2 rounded-md border border-border bg-muted/40 p-3 text-[11px]">
|
||||
<Mail className="mt-0.5 size-3.5 shrink-0 text-muted-foreground" />
|
||||
<p className="text-muted-foreground">
|
||||
Bayi kann eigene Kunden anlegen und lizenzieren. Tickets von dessen Kunden werden
|
||||
an den Bayi geroutet, nicht an uns.
|
||||
Reseller kann eigene Kunden anlegen und lizenzieren. Tickets von dessen Kunden werden
|
||||
an den Reseller geroutet, nicht an uns.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in new issue
Block a user