refactor(integration-bpjs): update validation logic for accident-related fields

This commit is contained in:
riefive
2025-10-24 13:12:40 +07:00
parent fb3e10bd11
commit ae995fef1d
+120 -105
View File
@@ -123,111 +123,126 @@ const IntegrationBpjsSchema = z
classPaySource: z.string({ required_error: ERROR_MESSAGES.required.classPaySource }).optional(), classPaySource: z.string({ required_error: ERROR_MESSAGES.required.classPaySource }).optional(),
responsiblePerson: z.string({ required_error: ERROR_MESSAGES.required.responsiblePerson }).optional(), responsiblePerson: z.string({ required_error: ERROR_MESSAGES.required.responsiblePerson }).optional(),
}) })
// .refine( .refine(
// (data) => { (data) => {
// return data.trafficAccident !== '' && data.accidentDate && data.accidentDate.trim() !== '' if (data.trafficAccident && data.trafficAccident.trim() !== '') {
// }, return data.accidentDate && data.accidentDate.trim() !== ''
// { }
// message: ERROR_MESSAGES.required.accidentDate, return true
// path: ['accidentDate'], },
// }, {
// ) message: ERROR_MESSAGES.required.accidentDate,
// .refine( path: ['accidentDate'],
// (data) => { },
// return data.trafficAccident !== '' && data.accidentProvince && data.accidentProvince.trim() !== '' )
// }, .refine(
// { (data) => {
// message: ERROR_MESSAGES.required.accidentProvince, if (data.trafficAccident && data.trafficAccident.trim() !== '') {
// path: ['accidentProvince'], return data.accidentProvince && data.accidentProvince.trim() !== ''
// }, }
// ) return true
// .refine( },
// (data) => { {
// return data.trafficAccident !== '' && data.accidentCity && data.accidentCity.trim() !== '' message: ERROR_MESSAGES.required.accidentProvince,
// }, path: ['accidentProvince'],
// { },
// message: ERROR_MESSAGES.required.accidentCity, )
// path: ['accidentCity'], .refine(
// }, (data) => {
// ) if (data.trafficAccident && data.trafficAccident.trim() !== '') {
// .refine( return data.accidentCity && data.accidentCity.trim() !== ''
// (data) => { }
// return data.trafficAccident !== '' && data.accidentDistrict && data.accidentDistrict.trim() !== '' return true
// }, },
// { {
// message: ERROR_MESSAGES.required.accidentDistrict, message: ERROR_MESSAGES.required.accidentCity,
// path: ['accidentDistrict'], path: ['accidentCity'],
// }, },
// ) )
// .refine( .refine(
// (data) => { (data) => {
// return data.trafficAccident !== '' && data.suplesi && data.suplesi.trim() !== '' if (data.trafficAccident && data.trafficAccident.trim() !== '') {
// }, return data.accidentDistrict && data.accidentDistrict.trim() !== ''
// { }
// message: ERROR_MESSAGES.required.suplesi, return true
// path: ['suplesi'], },
// }, {
// ) message: ERROR_MESSAGES.required.accidentDistrict,
// .refine( path: ['accidentDistrict'],
// (data) => { },
// return ( )
// data.trafficAccident !== '' && .refine(
// data.suplesi?.trim() === 'yes' && (data) => {
// data.suplesiNumber && if (data.trafficAccident && data.trafficAccident.trim() !== '') {
// data.suplesiNumber.trim() !== '' return data.suplesi && data.suplesi.trim() !== ''
// ) }
// }, return true
// { },
// message: ERROR_MESSAGES.required.suplesiNumber, {
// path: ['suplesiNumber'], message: ERROR_MESSAGES.required.suplesi,
// }, path: ['suplesi'],
// ) },
// .refine( )
// (data) => { .refine(
// return data.serviceType === '1' && data.classLevel && data.classLevel.trim() !== '' (data) => {
// }, if (data.trafficAccident && data.trafficAccident.trim() !== '' && data.suplesi?.trim() === 'yes') {
// { return data.suplesiNumber && data.suplesiNumber.trim() !== ''
// message: ERROR_MESSAGES.required.classLevel, }
// path: ['classLevel'], return true
// }, },
// ) {
// .refine( message: ERROR_MESSAGES.required.suplesiNumber,
// (data) => { path: ['suplesiNumber'],
// return data.serviceType === '1' && data.classLevelUpgrade && data.classLevelUpgrade.trim() !== '' },
// }, )
// { .refine(
// message: ERROR_MESSAGES.required.classLevelUpgrade, (data) => {
// path: ['classLevelUpgrade'], if (data.serviceType === '1') {
// }, return data.classLevel && data.classLevel.trim() !== ''
// ) }
// .refine( return true
// (data) => { },
// return ( {
// data.serviceType === '1' && message: ERROR_MESSAGES.required.classLevel,
// data.classLevelUpgrade?.trim() !== '' && path: ['classLevel'],
// data.classPaySource && },
// data.classPaySource.trim() !== '' )
// ) .refine(
// }, (data) => {
// { if (data.serviceType === '1') {
// message: ERROR_MESSAGES.required.classLevelUpgrade, return data.classLevelUpgrade && data.classLevelUpgrade.trim() !== ''
// path: ['classPaySource'], }
// }, return true
// ) },
// .refine( {
// (data) => { message: ERROR_MESSAGES.required.classLevelUpgrade,
// return ( path: ['classLevelUpgrade'],
// data.serviceType === '1' && },
// data.classPaySource?.trim() !== '' && )
// data.responsiblePerson && .refine(
// data.responsiblePerson.trim() !== '' (data) => {
// ) if (data.serviceType === '1' && data.classLevelUpgrade?.trim() !== '') {
// }, return data.classPaySource && data.classPaySource.trim() !== ''
// { }
// message: ERROR_MESSAGES.required.responsiblePerson, return true
// path: ['responsiblePerson'], },
// }, {
// ) message: ERROR_MESSAGES.required.classPaySource,
path: ['classPaySource'],
},
)
.refine(
(data) => {
if (data.serviceType === '1' && data.classPaySource?.trim() !== '') {
return data.responsiblePerson && data.responsiblePerson.trim() !== ''
}
return true
},
{
message: ERROR_MESSAGES.required.responsiblePerson,
path: ['responsiblePerson'],
},
)
type IntegrationBpjsFormData = z.infer<typeof IntegrationBpjsSchema> type IntegrationBpjsFormData = z.infer<typeof IntegrationBpjsSchema>