package medicationdispense

import "time"

type MedicationDispenseRequest struct {
	PatientID          string    `json:"patient_id" binding:"required"`
	PatientName        string    `json:"patient_name" binding:"required"`
	EncounterID        string    `json:"encounter_id" binding:"required"`
	MedicationID       string    `json:"medication_id" binding:"required"`
	MedicationDisplay  string    `json:"medication_display" binding:"required"`
	PractitionerID     string    `json:"practitioner_id" binding:"required"`
	PractitionerName   string    `json:"practitioner_name" binding:"required"`
	LocationID         string    `json:"location_id" binding:"required"`
	LocationName       string    `json:"location_name" binding:"required"`
	PrescriptionID     string    `json:"prescription_id" binding:"required"` // Reference to MedicationRequest
	Status             string    `json:"status" binding:"required,oneof=preparation in-progress cancelled on-hold completed entered-in-error stopped declined unknown"`
	PreparedDate       time.Time `json:"prepared_date" binding:"required"`
	HandedOverDate     time.Time `json:"handed_over_date" binding:"required"`
	DispenseValue      float64   `json:"dispense_value" binding:"required"`
	DispenseUnit       string    `json:"dispense_unit" binding:"required"`
	DosagePatientInstr string    `json:"dosage_patient_instruction"`
}

type MedicationDispensePatchRequest []map[string]interface{}
