133 lines
3.6 KiB
Go
133 lines
3.6 KiB
Go
package transaction
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
)
|
|
|
|
type TicketRequest struct {
|
|
KodeLayanan string `json:"kode_layanan" binding:"required"`
|
|
}
|
|
|
|
type TicketResponse struct {
|
|
Message string `json:"message"`
|
|
Data *TicketData `json:"data"`
|
|
}
|
|
type TicketData struct {
|
|
Ticket string `json:"ticket" db:"ticket"`
|
|
CheckIn bool `json:"check_in" db:"check_in"`
|
|
CheckInDate string `json:"check_in_datetime" db:"check_in_datetime"`
|
|
DateStart string `json:"datetime_start" db:"datetime_start"`
|
|
DateEnd string `json:"datetime_end" db:"datetime_end"`
|
|
}
|
|
|
|
type CreateTicketRequest struct {
|
|
IDLoket string `json:"idloket" db:"id" binding:"required"`
|
|
NamaDokter string `json:"dokter"`
|
|
IdKlinik string `json:"idklinik"`
|
|
NamaKlinik string `json:"namaklinik"`
|
|
IDpembayaran string `json:"idpembayaran"`
|
|
Statuspasien string `json:"statuspasien"`
|
|
Statuspasien2 string `json:"statuspasien2"`
|
|
Idklinikstatus string `json:"idklinikstatus"`
|
|
}
|
|
|
|
type CreateTicketResponse struct {
|
|
KodeLoket string `json:"code" db:"code"`
|
|
}
|
|
|
|
type BarcodeResponse struct {
|
|
Message string `json:"message"`
|
|
Data *BarcodeData `json:"data"`
|
|
}
|
|
type BarcodeData struct {
|
|
IdBarcode string `json:"id" db:"id"`
|
|
Barcode string `json:"barcode" db:"visit_code"`
|
|
NamaKlinik string `json:"namaklinik"`
|
|
CreatedAt time.Time `json:"-" db:"registration_time"`
|
|
Active bool `json:"active" db:"active"`
|
|
|
|
Ticket string `json:"ticket"`
|
|
Dokter string `json:"dokter"`
|
|
Shift string `json:"shift"`
|
|
DatetimeStart time.Time `json:"-"`
|
|
RemainingQuota string `json:"remaining_quota" db:"remaining_quota"`
|
|
}
|
|
|
|
type Checkin struct {
|
|
Visitcode string `json:"barcode"`
|
|
Statuspasien string `json:"statuspasien"`
|
|
Statuspasien2 string `json:"statuspasien2"`
|
|
Idklinikstatus string `json:"idklinikstatus"`
|
|
Idklinikstatus2 string `json:"idklinikstatus2"`
|
|
}
|
|
|
|
type UpdateTiket struct {
|
|
Visitcode string `json:"barcode"`
|
|
Statuspasien string `json:"statuspasien"`
|
|
Statuspasien2 string `json:"statuspasien2"`
|
|
Idklinikstatus string `json:"idklinikstatus"`
|
|
Idklinikstatus2 string `json:"idklinikstatus2"`
|
|
}
|
|
|
|
type TiketSelesai struct {
|
|
IDLoket string `json:"idloket"`
|
|
Visitcode string `json:"barcode"`
|
|
Statuspasien string `json:"statuspasien"`
|
|
Idklinikstatus string `json:"idklinikstatus"`
|
|
}
|
|
|
|
func (b BarcodeData) MarshalJSON() ([]byte, error) {
|
|
type Alias BarcodeData
|
|
|
|
// Struct untuk output JSON
|
|
output := struct {
|
|
Id string `json:"id"`
|
|
Barcode string `json:"barcode"`
|
|
NamaKlinik string `json:"namaklinik"`
|
|
TanggalBarcode string `json:"tanggalbarcode"`
|
|
WaktuBarcode string `json:"waktubarcode"`
|
|
Active bool `json:"active"`
|
|
Ticket string `json:"ticket"`
|
|
Dokter string `json:"dokter"`
|
|
Shift string `json:"shift"`
|
|
TanggalTiket string `json:"tanggaltiket"`
|
|
WaktuTiket string `json:"waktutiket"`
|
|
}{
|
|
Id: b.IdBarcode,
|
|
Barcode: b.Barcode,
|
|
NamaKlinik: b.NamaKlinik,
|
|
Active: b.Active,
|
|
Ticket: b.Ticket,
|
|
Dokter: b.Dokter,
|
|
Shift: b.Shift,
|
|
}
|
|
|
|
// Format CreatedAt
|
|
if !b.CreatedAt.IsZero() {
|
|
output.TanggalBarcode = b.CreatedAt.Format("2006-01-02")
|
|
output.WaktuBarcode = b.CreatedAt.Format("15:04:05")
|
|
}
|
|
|
|
// Format DatetimeStart
|
|
if !b.DatetimeStart.IsZero() {
|
|
output.TanggalTiket = b.DatetimeStart.Format("2006-01-02")
|
|
output.WaktuTiket = b.DatetimeStart.Format("15:04:05")
|
|
}
|
|
|
|
return json.Marshal(output)
|
|
}
|
|
|
|
type TicketID struct {
|
|
ID int `json:"id" db:"id"`
|
|
}
|
|
|
|
//type Loket struct {
|
|
// Barcode
|
|
// NoAntrean
|
|
// Klinik
|
|
// Pembayaran
|
|
// Dokter
|
|
// Fast
|
|
//}
|