package master import ( "database/sql" "encoding/json" ) type ListPoli struct { TipeAnjungan string `json:"Tipe_Anjungan" db:"tipeanjungan"` Active bool `json:"active" db:"active"` IDKlinik sql.NullString `json:"idklinik" db:"idklinik"` NamaKlinik sql.NullString `json:"namaklinik" db:"namaklinik"` Code string `json:"code" db:"code"` IDSpesialis sql.NullInt64 `json:"idspesialis" db:"idspesialis"` Spesialis sql.NullString `json:"Spesialis" db:"spesialis"` Hari string `json:"hari" db:"hari"` JamMulai string `json:"jammulai" db:"mulai"` JamSelesai string `json:"jamselesai" db:"selesai"` JamAnjungan string `json:"mulaianjungan" db:"mulaianjungan"` Selesaianjungan string `json:"selesaianjungan" db:"selesaianjungan"` Shift sql.NullInt64 `json:"shift" db:"shift"` Kuota sql.NullInt64 `json:"kuota" db:"kuota"` IDloket sql.NullString `json:"idloket" db:"idloket"` Namaloket sql.NullString `json:"namaloket" db:"namaloket"` KodeLoket sql.NullString `json:"kodeloket" db:"kodeloket"` QuotaLoket sql.NullInt64 `json:"quota_loket" db:"quota_loket"` AvailableQuota sql.NullInt64 `json:"available_quota" db:"available_quota"` IdPayment sql.NullInt64 `json:"idpayment" db:"idpayment"` PaymentType sql.NullString `json:"paymenttype" db:"paymenttype"` } type LoketDetail struct { IDLoket string `json:"idloket"` NamaLoket string `json:"namaloket"` KodeLoket string `json:"kodeloket"` AvailableQuota int `json:"available_quota"` } type PoliklinikGrouped struct { TipeAnjungan string `json:"Tipe_Anjungan"` Active bool `json:"active"` IDKlinik string `json:"idklinik"` NamaKlinik string `json:"namaklinik"` Code string `json:"code"` Shift sql.NullInt64 `json:"shift"` Kuota sql.NullInt64 `json:"kuota"` Jadwal []ScheduleDetail `json:"jadwal"` Spesialis []SpesialisDetail `json:"spesialis"` Loket []LoketDetail `json:"loket"` Payment []PaymentDetail `json:"payment"` } type SpesialisDetail struct { IDSpesialis int `json:"idspesialis"` Spesialis string `json:"Spesialis"` } type PoliklinikResponse struct { Message string `json:"message"` Data []*PoliklinikGrouped `json:"data"` Meta map[string]interface{} `json:"meta"` } type ScheduleDetail struct { Hari string `json:"hari"` JamOperasional string `json:"jam_operasional"` } type PaymentDetail struct { IDPayment int `json:"idpayment"` PaymentType string `json:"payment_type"` } type ListLoket struct { IdLoket string `json:"idloket" db:"idloket"` NamaLoket string `json:"namaloket" db:"namaloket"` KodeLoket string `json:"kodeloket" db:"kodeloket"` KuotaLoket string `json:"kuotaloket" db:"kuotaloket"` LoketAktif bool `json:"loketatif" db:"loketaktif"` JenisLoket string `json:"jenisoket" db:"jenisloket"` TipeLoket string `json:"tipeloket" db:"tipeloket"` TipeVisit string `json:"tipevisit" db:"tipevisit"` Pembayaran string `json:"pembayaran" db:"pembayaran"` IDKlinik string `json:"idklinik" db:"idklinik"` NamaKlinik string `json:"namaklinik" db:"namaklinik"` } type LoketResponse struct { Message string `json:"message"` Data []*LoketGrouped `json:"data"` Meta map[string]interface{} `json:"meta"` } type LoketGrouped struct { IdLoket string `json:"idloket"` TipeAnjungan string `json:"namaloket"` KodeLoket string `json:"kodeloket"` KuotaLoket string `json:"kuotaloket"` LoketAktif bool `json:"loketaktif"` JenisLoket string `json:"jenisloket"` TipeLoket string `json:"tipeloket"` TipeVisit []ListVisit `json:"tipevisit"` NamaKlinik []ListKlinik `json:"spesialis"` NamaPembayaran []ListPembayaran `json:"pembayaran"` } type ListVisit struct { TipeVisit string `json:"tipevisit"` } type ListKlinik struct { IDKlinik string `json:"idklinik"` NamaKlinik string `json:"namaklinik"` } type ListPembayaran struct { IDPayment int `json:"idpayment"` NamaPembayaran string `json:"pembayaran"` } func (p PoliklinikGrouped) MarshalJSON() ([]byte, error) { type Alias PoliklinikGrouped aux := &struct { Shift *int `json:"shift,omitempty"` Kuota *int `json:"kuota,omitempty"` *Alias }{ Alias: (*Alias)(&p), } // Convert sql.NullInt64 to pointer if p.Shift.Valid { shift := int(p.Shift.Int64) aux.Shift = &shift } if p.Kuota.Valid { kuota := int(p.Kuota.Int64) aux.Kuota = &kuota } return json.Marshal(aux) }