summaryrefslogtreecommitdiff
path: root/src-migrate/validations/tempo.ts
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-01-22 10:10:19 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-01-22 10:10:19 +0700
commit5cc3c938da3dfde636b918b8f2fdef33f3c61419 (patch)
tree222177fe6dce70fc608698c700de17032105998a /src-migrate/validations/tempo.ts
parent238c675eecaf6f4f953d87c4b0a128bfa139cff4 (diff)
parent6d9c1067b6e857eb95f12864cc88117350ae6cfb (diff)
Merge branch 'new-release' into CR/form-merchant
# Conflicts: # src/lib/form/components/Merchant.jsx
Diffstat (limited to 'src-migrate/validations/tempo.ts')
-rw-r--r--src-migrate/validations/tempo.ts181
1 files changed, 181 insertions, 0 deletions
diff --git a/src-migrate/validations/tempo.ts b/src-migrate/validations/tempo.ts
new file mode 100644
index 00000000..f019275c
--- /dev/null
+++ b/src-migrate/validations/tempo.ts
@@ -0,0 +1,181 @@
+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' }),
+ industryId: 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' }),
+ district: z.string().min(1, { message: 'Kecamatan harus dipilih' }),
+ subDistrict: z.string().min(1, { message: 'Kelurahan 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' })
+ .refine((val) => /^\d+$/.test(val), {
+ message: 'Nomor rekening hanya boleh mengandung angka',
+ }),
+ estimasi: z.string().optional(),
+ website: z.string().optional(),
+ tempoDuration: z.string().min(1, { message: 'Durasi tempo harus dipilih' }),
+ bersedia: z.string().min(1, { message: 'Harus dipilih' }),
+ portal: 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' }),
+ direkturTittle: z.string().min(1, { message: 'Tittle harus dipilih' }),
+ financeName: z.string().min(1, { message: 'Nama harus diisi' }),
+ direkturMobile: z.string().optional(),
+ 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',
+ }),
+ purchasingTittle: z.string().min(1, { message: 'Tittle harus dipilih' }),
+ financeTittle: z.string().min(1, { message: 'Tittle harus dipilih' }),
+ 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({
+ PICTittle: z.string().min(1, { message: 'Tittle harus dipilih' }),
+ 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' }),
+ districtPengiriman: z.string().min(1, { message: 'Kecamatan harus dipilih' }),
+ subDistrictPengiriman: z
+ .string()
+ .min(1, { message: 'Kelurahan harus dipilih' }),
+ zipPengiriman: z.string().min(1, { message: 'Kode pos harus diisi' }),
+ invoicePicTittle: z.string().min(1, { message: 'Tittle harus dipilih' }),
+ 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' }),
+ cityInvoice: z.string().min(1, { message: 'Kota invoice harus dipilih' }),
+ districtInvoice: z
+ .string()
+ .min(1, { message: 'Kecamatan invoice harus dipilih' }),
+ subDistrictInvoice: z
+ .string()
+ .min(1, { message: 'Kelurahan invoice harus dipilih' }),
+ zipInvoice: z.string().min(1, { message: 'Kode pos harus diisi' }),
+ isSameAddrees: z.string(),
+ isSameAddreesStreet: z.string(),
+ tukarInvoiceInput: z.string().optional(),
+ tukarInvoiceInputPembayaran: z.string().optional(),
+ dokumenPengiriman: z.string().optional(),
+ dokumenPengirimanInput: z.string().optional(),
+ dokumenKirimInput: z.string().optional(),
+ 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().optional(),
+ base64: z.string().optional(),
+ }),
+ dokumenNpwp: z.object({
+ name: z.string().min(1, { message: 'Nama file harus diisi' }),
+ format: z.string().optional(),
+ base64: z.string().optional(),
+ }),
+ dokumenSppkp: z.object({
+ name: z.string().min(1, { message: 'Nama file harus diisi' }),
+ format: z.string().optional(),
+ base64: z.string().optional(),
+ }),
+ dokumenSiup: z.object({
+ name: z.string().optional(),
+ format: z.string().optional(),
+ base64: z.string().optional(),
+ }),
+ dokumenTdp: z.object({
+ name: z.string().optional(),
+ format: z.string().optional(),
+ base64: z.string().optional(),
+ }),
+ dokumenSkdp: z.object({
+ name: z.string().optional(),
+ format: z.string().optional(),
+ base64: z.string().optional(),
+ }),
+ dokumenSkt: z.object({
+ name: z.string().optional(),
+ format: z.string().optional(),
+ base64: z.string().optional(),
+ }),
+ 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().optional(),
+ base64: z.string().optional(),
+ }),
+ dokumenTempatBekerja: z.object({
+ name: z.string().min(1, { message: 'Nama file harus diisi' }),
+ format: z.string().optional(),
+ base64: z.string().optional(),
+ }),
+});