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 //}