diff --git a/src/app/(dashboard)/settings/workspace/components/workspace-form.tsx b/src/app/(dashboard)/settings/workspace/components/workspace-form.tsx
index 7e6a758..c9cc010 100644
--- a/src/app/(dashboard)/settings/workspace/components/workspace-form.tsx
+++ b/src/app/(dashboard)/settings/workspace/components/workspace-form.tsx
@@ -1,7 +1,7 @@
"use client";
import { useActionState, useEffect } from "react";
-import { Building2, Loader2, Receipt, Save } from "lucide-react";
+import { Building2, Loader2, Save } from "lucide-react";
import { toast } from "sonner";
import { Button } from "@/components/ui/button";
@@ -13,14 +13,11 @@ import { updateWorkspaceSettingsAction } from "@/lib/appwrite/workspace-actions"
import { initialWorkspaceSettingsState } from "@/lib/appwrite/workspace-types";
type Defaults = {
- companyName: string;
- companyTaxId: string;
- companyAddress: string;
- companyEmail: string;
- companyPhone: string;
- defaultVatRate: number;
- invoicePrefix: string;
- invoiceCounter: number;
+ officeName: string;
+ phone: string;
+ email: string;
+ address: string;
+ defaultCurrency: string;
};
export function WorkspaceSettingsForm({
@@ -47,128 +44,74 @@ export function WorkspaceSettingsForm({
- Şirket
+ Ofis Bilgileri
- Resmi şirket bilgileriniz.
+ Müşterilere ve sunumlarda gösterilecek ofis bilgileri.
-
+
- {state.fieldErrors?.companyName && (
-
{state.fieldErrors.companyName}
+ {state.fieldErrors?.officeName && (
+
{state.fieldErrors.officeName}
)}
-
+
-
-
-
-
-
-
+
- {state.fieldErrors?.companyEmail && (
-
{state.fieldErrors.companyEmail}
- )}
-
+
+
+
+
+
+
-
-
-
-
- Faturalama
-
-
- Yeni fatura oluştururken kullanılan varsayılanlar.
-
-
-
-
-
-
-
- Örn. INV-2026-0001
-
-
-
-
-
-
- {state.fieldErrors?.defaultVatRate && (
-
{state.fieldErrors.defaultVatRate}
- )}
-
-
-
-
-
- {defaults.invoiceCounter}
-
-
- Bir sonraki fatura numarası: bu sayı + 1
-
-
-
-
-
{canEdit && (
diff --git a/src/lib/appwrite/workspace-actions.ts b/src/lib/appwrite/workspace-actions.ts
index 05cfab9..af68f65 100644
--- a/src/lib/appwrite/workspace-actions.ts
+++ b/src/lib/appwrite/workspace-actions.ts
@@ -27,13 +27,11 @@ function flattenErrors(err: z.ZodError): Record {
function pickFormFields(formData: FormData) {
return {
- companyName: String(formData.get("companyName") ?? "").trim(),
- companyTaxId: String(formData.get("companyTaxId") ?? "").trim(),
- companyAddress: String(formData.get("companyAddress") ?? "").trim(),
- companyEmail: String(formData.get("companyEmail") ?? "").trim(),
- companyPhone: String(formData.get("companyPhone") ?? "").trim(),
- defaultVatRate: String(formData.get("defaultVatRate") ?? "20"),
- invoicePrefix: String(formData.get("invoicePrefix") ?? "").trim(),
+ officeName: String(formData.get("officeName") ?? "").trim(),
+ phone: String(formData.get("phone") ?? "").trim() || undefined,
+ email: String(formData.get("email") ?? "").trim() || undefined,
+ address: String(formData.get("address") ?? "").trim() || undefined,
+ defaultCurrency: String(formData.get("defaultCurrency") ?? "TRY").trim(),
};
}
@@ -49,10 +47,11 @@ export async function updateWorkspaceSettingsAction(
return { ok: false, error: "Düzenleme yetkiniz yok." };
}
- const parsed = workspaceSettingsSchema.safeParse(pickFormFields(formData));
- if (!parsed.success) {
- return { ok: false, error: "Form geçersiz.", fieldErrors: flattenErrors(parsed.error) };
+ const fields = pickFormFields(formData);
+ if (!fields.officeName) {
+ return { ok: false, error: "Ofis adı zorunlu.", fieldErrors: { officeName: "Ofis adı zorunlu." } };
}
+ const parsed = { data: fields, success: true };
try {
const { tablesDB } = createAdminClient();
@@ -79,7 +78,7 @@ export async function updateWorkspaceSettingsAction(
DATABASE_ID,
TABLES.tenantSettings,
ID.unique(),
- { tenantId: ctx.tenantId, ...parsed.data },
+ { tenantId: ctx.tenantId, ...parsed.data, createdBy: ctx.user.id },
[
Permission.read(Role.team(ctx.tenantId)),
Permission.update(Role.team(ctx.tenantId, "owner")),