import { z } from 'zod'; export const TempoSchema = z.object({ name: z.string().min(1, { message: 'Nama harus diisi' }), street: z.string().min(1, { message: 'Alamat harus diisi' }), industry_id: z.string().min(1, { message: 'Jenis usaha harus dipilih' }), zip: z.string().min(1, { message: 'Kode pos harus diisi' }), state: z.string().min(1, { message: 'Provinsi harus dipilih' }), city: z.string().min(1, { message: 'Kota harus dipilih' }), mobile: z .string() .min(1, { message: 'Nomor telepon harus diisi' }) .refine((val) => /^\d{10,12}$/.test(val), { message: 'Format nomor telepon tidak valid, contoh: 081234567890', }), bankName: z.string().min(1, { message: 'Nama bank harus diisi' }), accountName: z.string().min(1, { message: 'Nama rekening harus diisi' }), accountNumber: z.string().min(1, { message: 'Nomor rekening harus diisi' }), estimasi: z .string() .min(1, { message: 'Estimasi pemmbelian pertahun harus diisi' }), tempoDuration: z.string().min(1, { message: 'Durasi tempo harus dipilih' }), tempoLimit: z.string().min(1, { message: 'Limit tempo harus dipilih' }), bersedia: z.string().min(1, { message: 'Harus dipilih' }), categoryProduk: z .string() .min(1, { message: 'Category produk harus dipilih' }), }); export const TempoSchemaKontakPerson = z.object({ direkturName: z.string().min(1, { message: 'Nama harus diisi' }), financeName: z.string().min(1, { message: 'Nama harus diisi' }), direkturMobile: z .string() .min(1, { message: 'Nomor telepon harus diisi' }) .refine((val) => /^\d{10,12}$/.test(val), { message: 'Format nomor telepon tidak valid, contoh: 081234567890', }), financeMobile: z .string() .min(1, { message: 'Nomor telepon harus diisi' }) .refine((val) => /^\d{10,12}$/.test(val), { message: 'Format nomor telepon tidak valid, contoh: 081234567890', }), purchasingMobile: z .string() .min(1, { message: 'Nomor telepon harus diisi' }) .refine((val) => /^\d{10,12}$/.test(val), { message: 'Format nomor telepon tidak valid, contoh: 081234567890', }), direkturEmail: z .string() .min(1, { message: 'Email harus diisi' }) .email({ message: 'Email harus menggunakan format example@mail.com' }), purchasingEmail: z .string() .min(1, { message: 'Email harus diisi' }) .email({ message: 'Email harus menggunakan format example@mail.com' }), financeEmail: z .string() .min(1, { message: 'Email harus diisi' }) .email({ message: 'Email harus menggunakan format example@mail.com' }), purchasingName: z.string().min(1, { message: 'Nama harus diisi' }), }); export const TempoSchemaPengiriman = z.object({ PICName: z.string().min(1, { message: 'Nama harus diisi' }), streetPengiriman: z.string().min(1, { message: 'Alamat harus diisi' }), statePengiriman: z.string().min(1, { message: 'Provinsi harus dipilih' }), cityPengiriman: z.string().min(1, { message: 'Kota harus dipilih' }), zip: z.string().min(1, { message: 'Kode pos harus diisi' }), invoicePic: z.string().min(1, { message: 'Nama pic invoice harus diisi' }), streetInvoice: z.string().min(1, { message: 'Alamat invoice harus diisi' }), stateInvoice: z .string() .min(1, { message: 'Provinsi invoice harus dipilih' }), isSameAddrees: z.string(), cityInvoice: z.string().min(1, { message: 'Kota invoice harus dipilih' }), everyWeekday: z.boolean().optional(), everyWeekdayInput: z.string().optional(), everyWeek: z.boolean().optional(), everyWeekInput: z.string().optional(), tukarInvoice: z.boolean().optional(), tukarInvoiceInput: z.string().optional(), everyWeekdayPembayaran: z.boolean().optional(), everyWeekdayInputPembayaran: z.string().optional(), everyWeekPembayaran: z.boolean().optional(), everyWeekInputPembayaran: z.string().optional(), tukarInvoicePembayaran: z.boolean().optional(), tukarInvoiceInputPembayaran: z.string().optional(), dokumenPengiriman: z.string().min(1, { message: 'dokumen lampiran saat pengiriman barang harus dipilih', }), dokumenPengirimanInput: z.string().optional(), dokumenPengirimanInvoice: z.string().min(1, { message: 'dokumen lampiran saat pengiriman barang harus dipilih', }), dokumenPengirimanInvoiceInput: z.string().optional(), }); export const TempoSchemaSupplier = z.object({ supplier: z.string().min(1, { message: 'Nama supplier harus diisi' }), pic: z.string().min(1, { message: 'Nama PIC harus diisi' }), telepon: z .string() .min(1, { message: 'Nomor telepon harus diisi' }) .refine((val) => /^\d{10,12}$/.test(val), { message: 'Format nomor telepon tidak valid, contoh: 081234567890', }), durasiTempo: z.string().min(1, { message: 'Durasi tempo harus diisi' }), creditLimit: z.string().min(1, { message: 'Limit Kredit harus diisi' }), }); export const TempoSchemaDokumen = z.object({ dokumenNib: z.object({ name: z.string().min(1, { message: 'Nama file harus diisi' }), format: z.string().min(1, { message: 'Format file harus diisi' }), base64: z.string().min(1, { message: 'Dokumen harus diisi' }), }), dokumenNpwp: z.object({ name: z.string().min(1, { message: 'Nama file harus diisi' }), format: z.string().min(1, { message: 'Format file harus diisi' }), base64: z.string().min(1, { message: 'Dokumen harus diisi' }), }), dokumenSppkp: z.object({ name: z.string().min(1, { message: 'Nama file harus diisi' }), format: z.string().min(1, { message: 'Format file harus diisi' }), base64: z.string().min(1, { message: 'Dokumen harus diisi' }), }), dokumenAktaPerubahan: z.object({ name: z.string().optional(), format: z.string().optional(), base64: z.string().optional(), }), dokumenKtpDirut: z.object({ name: z.string().optional(), format: z.string().optional(), base64: z.string().optional(), }), dokumenAktaPendirian: z.object({ name: z.string().optional(), format: z.string().optional(), base64: z.string().optional(), }), dokumenLaporanKeuangan: z.object({ name: z.string().optional(), format: z.string().optional(), base64: z.string().optional(), }), dokumenFotoKantor: z.object({ name: z.string().min(1, { message: 'Nama file harus diisi' }), format: z.string().min(1, { message: 'Format file harus diisi' }), base64: z.string().min(1, { message: 'Dokumen harus diisi' }), }), dokumenTempatBekerja: z.object({ name: z.string().min(1, { message: 'Nama file harus diisi' }), format: z.string().min(1, { message: 'Format file harus diisi' }), base64: z.string().min(1, { message: 'Dokumen harus diisi' }), }), });