package appointment

import (
	ecore "simrs-vx/internal/domain/base-entities/core"
	ep "simrs-vx/internal/domain/main-entities/patient"
	eps "simrs-vx/internal/domain/main-entities/practice-schedule"
	erc "simrs-vx/internal/domain/references/common"
)

type Appointment struct {
	ecore.Main                                          // adjust this according to the needs
	PracticeSchedule_Id           *uint                 `json:"practiceSchedule_id"`
	PracticeSchedule              *eps.PracticeSchedule `json:"practiceSchedule,omitempty" gorm:"foreignKey:PracticeSchedule_Id;references:Id"`
	Patient_Id                    *uint                 `json:"patient_id"`
	Patient                       *ep.Patient           `json:"patient,omitempty" gorm:"foreignKey:Patient_Id;references:Id"`
	Person_ResidentIdentityNumber string                `json:"person_residentIdentityNumber" gorm:"size:16"`
	Person_Name                   string                `json:"person_name" gorm:"size:100"`
	Person_PhoneNumber            string                `json:"person_phoneNumber" gorm:"size:30"`
	PaymentMethod_Code            erc.PaymentMethodCode `json:"paymentMethod_code" gorm:"size:10"`
	RefNumber                     string                `json:"refNumber" gorm:"size:20"`
}
