package medicationrequest

import "time"

type MedicationRequestRequest struct {
	PatientID         string    `json:"patient_id" binding:"required"`
	PatientName       string    `json:"patient_name" binding:"required"`
	EncounterID       string    `json:"encounter_id" binding:"required"`
	PractitionerID    string    `json:"practitioner_id" binding:"required"`
	PractitionerName  string    `json:"practitioner_name" binding:"required"`
	MedicationID      string    `json:"medication_id" binding:"required"` // Reference to Medication resource
	MedicationDisplay string    `json:"medication_display" binding:"required"`
	Status            string    `json:"status" binding:"required,oneof=active on-hold cancelled completed entered-in-error stopped draft unknown"`
	Intent            string    `json:"intent" binding:"required,oneof=proposal plan order original-order reflex-order filler-order instance-order option"`
	AuthoredOn        time.Time `json:"authored_on" binding:"required"`
	DosageText        string    `json:"dosage_text" binding:"required"`
	PatientInstr      string    `json:"patient_instruction"`
	DispenseValue     float64   `json:"dispense_value" binding:"required"`
	DispenseUnit      string    `json:"dispense_unit" binding:"required"`
	SupplyDuration    int       `json:"supply_duration" binding:"required"` // in days
}

type MedicationRequestPatchRequest []map[string]interface{}
