+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
-
+
-
+
@@ -172,7 +203,7 @@ export function ClientSheet({
>
@@ -187,7 +218,7 @@ export function ClientSheet({
diff --git a/src/app/(modules)/clients/hooks/useClientForm.ts b/src/app/(modules)/clients/hooks/useClientForm.ts
index 831df40..080c2fd 100644
--- a/src/app/(modules)/clients/hooks/useClientForm.ts
+++ b/src/app/(modules)/clients/hooks/useClientForm.ts
@@ -9,37 +9,32 @@ import { z } from 'zod';
import type { Client } from '@/types';
import { useSaveClientMutation } from './useClientMutations';
-const phoneSchema = z
- .string()
- .trim()
- .min(1, 'Phone number is required')
- .regex(/^\+(?:[0-9] ?|-){6,18}[0-9]$/, 'Please enter a valid phone number');
-
+const requiredText = (message: string) => z.string().trim().min(1, message);
const optionalTaxIdSchema = z.string().trim();
const clientFormSchema = z.object({
id: z.number().optional(),
- name: z.string().trim().min(1, 'Client name is required'),
- email: z.string().trim().min(1, 'Email is required').email('Invalid email'),
- landline_number: phoneSchema,
- address: z.string().trim().min(1, 'Address is required'),
+ first_name: requiredText('First name is required'),
+ last_name: requiredText('Last name is required'),
+ email: requiredText('Email is required').email('Invalid email'),
+ landline_number: requiredText('Landline number is required'),
+ address: requiredText('Address is required'),
gst: optionalTaxIdSchema,
pan: optionalTaxIdSchema,
tan: optionalTaxIdSchema,
- contact_name: z.string().trim().min(1, 'Contact name is required'),
- contact_phone_number: phoneSchema,
- contact_email: z
- .string()
- .trim()
- .min(1, 'Contact email is required')
- .email('Invalid contact email'),
+ contact_name: requiredText('Contact name is required'),
+ contact_phone_number: requiredText('Contact phone number is required'),
+ contact_email: requiredText('Contact email is required').email(
+ 'Invalid contact email',
+ ),
is_active: z.boolean(),
});
export type ClientFormValues = z.infer
;
const defaultValues: ClientFormValues = {
- name: '',
+ first_name: '',
+ last_name: '',
email: '',
landline_number: '',
address: '',
@@ -73,7 +68,8 @@ export function useClientForm({ onSaved }: { onSaved: () => void }) {
});
const clientId = useWatch({ control, name: 'id' });
- const name = useWatch({ control, name: 'name' }) || '';
+ const firstName = useWatch({ control, name: 'first_name' }) || '';
+ const lastName = useWatch({ control, name: 'last_name' }) || '';
const email = useWatch({ control, name: 'email' }) || '';
const landlineNumber = useWatch({ control, name: 'landline_number' }) || '';
const address = useWatch({ control, name: 'address' }) || '';
@@ -82,7 +78,8 @@ export function useClientForm({ onSaved }: { onSaved: () => void }) {
useWatch({ control, name: 'contact_phone_number' }) || '';
const contactEmail = useWatch({ control, name: 'contact_email' }) || '';
const canSubmit =
- name.trim().length > 0 &&
+ firstName.trim().length > 0 &&
+ lastName.trim().length > 0 &&
email.trim().length > 0 &&
landlineNumber.trim().length > 0 &&
address.trim().length > 0 &&
@@ -111,7 +108,8 @@ export function useClientForm({ onSaved }: { onSaved: () => void }) {
(client: Client) => {
reset({
id: client.id,
- name: client.name || '',
+ first_name: client.first_name || '',
+ last_name: client.last_name || '',
email: client.email || '',
landline_number: client.landline_number || '',
address: client.address || '',
diff --git a/src/app/(modules)/clients/hooks/useClientMutations.ts b/src/app/(modules)/clients/hooks/useClientMutations.ts
index 4d771aa..b01260c 100644
--- a/src/app/(modules)/clients/hooks/useClientMutations.ts
+++ b/src/app/(modules)/clients/hooks/useClientMutations.ts
@@ -20,7 +20,8 @@ export function useSaveClientMutation({ onSaved }: { onSaved: () => void }) {
mutationFn: (values: ClientFormValues) =>
clientService.saveClient({
id: values.id,
- name: values.name.trim(),
+ first_name: values.first_name.trim(),
+ last_name: values.last_name.trim(),
email: values.email.trim(),
landline_number: values.landline_number.trim(),
address: values.address.trim(),
diff --git a/src/app/(modules)/segment/components/SegmentDialog.tsx b/src/app/(modules)/segment/components/SegmentDialog.tsx
index 6695b82..d3159ee 100644
--- a/src/app/(modules)/segment/components/SegmentDialog.tsx
+++ b/src/app/(modules)/segment/components/SegmentDialog.tsx
@@ -83,7 +83,11 @@ export function SegmentDialog({
-