package models // SepPostRequest represents the request payload for creating a SEP type SepPostRequest struct { TSep TSepPost `json:"tsep" binding:"required"` } // TSepPost contains the main SEP data for creation type TSepPost struct { NoKartu string `json:"noKartu" binding:"required"` TglSep string `json:"tglSep" binding:"required"` // yyyy-MM-dd PpkPelayanan string `json:"ppkPelayanan" binding:"required"` JnsPelayanan string `json:"jnsPelayanan" binding:"required"` KlsRawat KlsRawatPost `json:"klsRawat" binding:"required"` NoMR string `json:"noMR" binding:"required"` Rujukan Rujukan `json:"rujukan" binding:"required"` Catatan string `json:"catatan"` DiagAwal string `json:"diagAwal" binding:"required"` Poli Poli `json:"poli" binding:"required"` Cob Flag `json:"cob" binding:"required"` Katarak Flag `json:"katarak" binding:"required"` Jaminan Jaminan `json:"jaminan" binding:"required"` TujuanKunj string `json:"tujuanKunj"` FlagProcedure string `json:"flagProcedure"` KdPenunjang string `json:"kdPenunjang"` AssesmentPel string `json:"assesmentPel"` Skdp Skdp `json:"skdp" binding:"required"` DpjpLayan string `json:"dpjpLayan"` NoTelp string `json:"noTelp"` User string `json:"user" binding:"required"` } // KlsRawatPost represents class of care data for POST requests type KlsRawatPost struct { KlsRawatHak string `json:"klsRawatHak" binding:"required"` KlsRawatNaik string `json:"klsRawatNaik"` Pembiayaan string `json:"pembiayaan"` PenanggungJawab string `json:"penanggungJawab"` } // Rujukan represents referral data type Rujukan struct { AsalRujukan string `json:"asalRujukan" binding:"required"` TglRujukan string `json:"tglRujukan" binding:"required"` NoRujukan string `json:"noRujukan" binding:"required"` PpkRujukan string `json:"ppkRujukan" binding:"required"` } // Poli represents poly/department data type Poli struct { Tujuan string `json:"tujuan" binding:"required"` Eksekutif string `json:"eksekutif" binding:"required"` } // Flag represents a generic flag structure type Flag struct { Flag string `json:"flag" binding:"required"` } // Jaminan represents insurance guarantee data type Jaminan struct { LakaLantas string `json:"lakaLantas" binding:"required"` NoLP string `json:"noLP"` Penjamin Penjamin `json:"penjamin"` } // Penjamin represents guarantor data type Penjamin struct { TglKejadian string `json:"tglKejadian"` Keterangan string `json:"keterangan"` Suplesi Suplesi `json:"suplesi"` } // Suplesi represents supplementary data type Suplesi struct { Suplesi string `json:"suplesi"` NoSepSuplesi string `json:"noSepSuplesi"` LokasiLaka LokasiLaka `json:"lokasiLaka"` } // LokasiLaka represents accident location data type LokasiLaka struct { KdPropinsi string `json:"kdPropinsi"` KdKabupaten string `json:"kdKabupaten"` KdKecamatan string `json:"kdKecamatan"` } // Skdp represents SKDP data type Skdp struct { NoSurat string `json:"noSurat" binding:"required"` KodeDPJP string `json:"kodeDPJP" binding:"required"` } // SepPutRequest represents the request payload for updating a SEP type SepPutRequest struct { TSep TSepPut `json:"tsep" binding:"required"` } // TSepPut contains the main SEP data for updates type TSepPut struct { NoSep string `json:"noSep" binding:"required"` KlsRawat KlsRawatPut `json:"klsRawat"` NoMR string `json:"noMR"` Catatan string `json:"catatan"` DiagAwal string `json:"diagAwal"` Poli Poli `json:"poli"` Cob Flag `json:"cob"` Katarak Flag `json:"katarak"` Jaminan Jaminan `json:"jaminan"` DpjpLayan string `json:"dpjpLayan"` NoTelp string `json:"noTelp"` User string `json:"user" binding:"required"` } // KlsRawatPut represents class of care data for PUT requests type KlsRawatPut struct { KlsRawatHak string `json:"klsRawatHak"` KlsRawatNaik string `json:"klsRawatNaik"` Pembiayaan string `json:"pembiayaan"` PenanggungJawab string `json:"penanggungJawab"` } // SepDeleteRequest represents the request payload for deleting a SEP type SepDeleteRequest struct { TSep struct { NoSep string `json:"noSep" binding:"required"` User string `json:"user" binding:"required"` } `json:"tsep" binding:"required"` } // SepResponse represents the standard response for SEP operations type SepResponse struct { Message string `json:"message"` Data map[string]interface{} `json:"data,omitempty"` } // SepRawResponse represents the raw response from BPJS API type SepRawResponse struct { MetaData struct { Code string `json:"code"` Message string `json:"message"` } `json:"metaData"` Response interface{} `json:"response"` }