first commit

This commit is contained in:
2026-02-13 15:57:28 +07:00
parent d4248b62e1
commit 7ae8c76a20
26 changed files with 5040 additions and 32 deletions
+23
View File
@@ -0,0 +1,23 @@
package master
type ListDokter struct {
GelarDepan string `json:"gelardepan" db:"gelardepan"`
NamaLengkap string `json:"namalengkap" db:"namalengkap"`
GelarBelakang string `json:"gelarbelakang" db:"gelarbelakang"`
Spesialis string `json:"Spesialis" db:"Spesialis"`
Subspesialis string `json:"Subspesialis" db:"Subspesialis"`
}
// DokterFormatted - Data dokter yang sudah diformat
type DokterFormatted struct {
NamaLengkapFormatted string `json:"nama_lengkap"`
Spesialis string `json:"Spesialis"`
Subspesialis string `json:"Subspesialis"`
}
// DokterResponse - Response API
type DokterResponse struct {
Message string `json:"message"`
Data []*DokterFormatted `json:"data"`
Meta map[string]interface{} `json:"meta"`
}
+125
View File
@@ -0,0 +1,125 @@
package master
import (
"database/sql"
"encoding/json"
"time"
)
type TicketQueue struct {
ID int64 `json:"id" db:"id"`
HealthcareServiceCode sql.NullString `json:"healthcare_service_code" db:"healtcare_service_code"`
Ticket string `json:"ticket" db:"ticket"`
DatetimeStart time.Time `json:"datetime_start" db:"datetime_start"`
VisitCode string `json:"visit_code" db:"visit_code"`
HealthcareServiceName sql.NullString `json:"healthcare_service_name" db:"name"`
HealthcareServiceCodeMS sql.NullString `json:"healthcare_service_code_ms" db:"code"`
ShiftNumber sql.NullInt64 `json:"shift_number" db:"shift_number"`
PaymentTypeName sql.NullString `json:"payment_type_name" db:"payment"`
Posisi sql.NullString `json:"-" db:"posisi"`
Deskripsi sql.NullString `json:"-" db:"deskripsi"`
WaktuPosisi sql.NullTime `json:"-" db:"waktuposisi"`
}
type TicketQueueResponse struct {
Message string `json:"message"`
KuotaLoket int `json:"kuotaloket"`
Data []*LoketTiketResponse `json:"data"`
Meta map[string]interface{} `json:"meta"`
}
func (t TicketQueue) MarshalJSON() ([]byte, error) {
type Alias TicketQueue
aux := &struct {
HealthcareServiceCode *string `json:"healthcare_service_code,omitempty"`
DateStart *string `json:"date_start,omitempty"`
TimeStart *string `json:"time_start,omitempty"`
DatetimeStartFormatted *string `json:"datetime_start_formatted,omitempty"`
HealthcareServiceName *string `json:"healthcare_service_name,omitempty"`
HealthcareServiceCodeMS *string `json:"healthcare_service_code_ms,omitempty"`
ShiftNumber *int `json:"shift_number,omitempty"`
PaymentTypeName *string `json:"payment_type_name,omitempty"`
WaktuPosisi1 *string `json:"waktu_posisi,omitempty"`
TanggalPosisi *string `json:"tanggal_posisi,omitempty"`
*Alias
}{
Alias: (*Alias)(&t),
}
if t.HealthcareServiceCode.Valid {
aux.HealthcareServiceCode = &t.HealthcareServiceCode.String
}
if !t.DatetimeStart.IsZero() {
dateStr := t.DatetimeStart.Format("02 Jan 2006")
aux.DateStart = &dateStr
timeStr := t.DatetimeStart.Format("15:04:05")
aux.TimeStart = &timeStr
formattedStr := t.DatetimeStart.Format("02 Jan 2006, 15:04")
aux.DatetimeStartFormatted = &formattedStr
}
if t.HealthcareServiceName.Valid {
aux.HealthcareServiceName = &t.HealthcareServiceName.String
}
if t.HealthcareServiceCodeMS.Valid {
aux.HealthcareServiceCodeMS = &t.HealthcareServiceCodeMS.String
}
if t.ShiftNumber.Valid {
shift := int(t.ShiftNumber.Int64)
aux.ShiftNumber = &shift
}
if t.PaymentTypeName.Valid {
aux.PaymentTypeName = &t.PaymentTypeName.String
}
return json.Marshal(aux)
}
type LoketTiketResponse struct {
IdLoketTiket string `json:"idtiket"`
TiketLoket string `json:"ticket"`
KlinikTiketLoket string `json:"klinik"`
BarcodeTiketLoket string `json:"barcode"`
TanggalTiketLoket string `json:"tanggal"`
WaktuTiketLoket string `json:"waktu"`
ShiftTiketLoket int `json:"shift"`
Pembayaran string `json:"pembayaran"`
Posisi []Posisi `json:"posisi"`
}
type Posisi struct {
Posisi string `json:"posisi,omitempty"`
Deskripsi string `json:"deskripsi,omitempty"`
WaktuPosisi string `json:"waktuposisi,omitempty"`
TanggalPosisi string `json:"tanggalposisi,omitempty"`
}
type KlinikRuangan struct {
IDKlinik sql.NullString `json:"idklinik" db:"idklinik"`
NamaKlinik sql.NullString `json:"namaklinik" db:"namaklinik"`
IDRuangan sql.NullString `json:"idruangan" db:"idruangan"`
NamaRuangan sql.NullString `json:"namaruangan" db:"namaruangan"`
}
type RuanganDetail struct {
IDRuangan string `json:"idruangan"`
NamaRuangan string `json:"namaruangan"`
}
type KlinikRuanganGrouped struct {
IDKlinik string `json:"idklinik"`
NamaKlinik string `json:"namaklinik"`
Ruangan []RuanganDetail `json:"ruangan"`
}
type KlinikRuanganResponse struct {
Message string `json:"message"`
Data []*KlinikRuanganGrouped `json:"data"`
Meta map[string]interface{} `json:"meta"`
}
+141
View File
@@ -0,0 +1,141 @@
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)
}