package models

type Inspection struct {
	ID           int64  `gorm:"column:id" json:"id" form:"id"`
	PatientId    int64  `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
	OrgId        int64  `gorm:"column:org_id" json:"org_id" form:"org_id"`
	ProjectId    int64  `gorm:"column:project_id" json:"project_id" form:"project_id"`
	ItemId       int64  `gorm:"column:item_id" json:"item_id" form:"item_id"`
	ItemName     string `gorm:"column:item_name" json:"item_name" form:"item_name"`
	ProjectName  string `gorm:"column:project_name" json:"project_name" form:"project_name"`
	InspectType  int64  `gorm:"column:inspect_type" json:"inspect_type" form:"inspect_type"`
	InspectValue string `gorm:"column:inspect_value" json:"inspect_value" form:"inspect_value"`
	InspectTips  string `gorm:"column:inspect_tips" json:"inspect_tips" form:"inspect_tips"`
	InspectDate  int64  `gorm:"column:inspect_date" json:"inspect_date" form:"inspect_date"`
	Status       int64  `gorm:"column:status" json:"status" form:"status"`
	CreatedTime  int64  `gorm:"column:created_time" json:"created_time" form:"created_time"`
	UpdatedTime  int64  `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
}

func (Inspection) TableName() string {
	return "xt_inspection"
}

type Inspections struct {
	ID           int64  `gorm:"column:id" json:"id" form:"id"`
	PatientId    int64  `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
	OrgId        int64  `gorm:"column:org_id" json:"org_id" form:"org_id"`
	ProjectId    int64  `gorm:"column:project_id" json:"project_id" form:"project_id"`
	ItemId       int64  `gorm:"column:item_id" json:"item_id" form:"item_id"`
	ItemName     string `gorm:"column:item_name" json:"item_name" form:"item_name"`
	ProjectName  string `gorm:"column:project_name" json:"project_name" form:"project_name"`
	InspectType  int64  `gorm:"column:inspect_type" json:"inspect_type" form:"inspect_type"`
	InspectValue string `gorm:"column:inspect_value" json:"inspect_value" form:"inspect_value"`
	InspectDate  int64  `gorm:"column:inspect_date" json:"inspect_date" form:"inspect_date"`
	Status       int64  `gorm:"column:status" json:"status" form:"status"`
	CreatedTime  int64  `gorm:"column:created_time" json:"created_time" form:"created_time"`
	UpdatedTime  int64  `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
	RangeType    int64  `gorm:"column:range_type" json:"range_type" form:"range_type"`
	RangeMin     string `gorm:"column:range_min" json:"range_min" form:"range_min"`
	RangeMax     string `gorm:"column:range_max" json:"range_max" form:"range_max"`
	RangeValue   string `gorm:"column:range_value" json:"range_value" form:"range_value"`
	RangeOptions string `gorm:"column:range_options" json:"range_options" form:"range_options"`
	Unit         string `gorm:"column:unit" json:"unit" form:"unit"`
}

type InspectionReference struct {
	ID               int64  `gorm:"column:id" json:"id" form:"id"`
	OrgId            int64  `gorm:"column:org_id" json:"org_id" form:"org_id"`
	ProjectName      string `gorm:"column:project_name" json:"project_name" form:"project_name"`
	Project          string `gorm:"column:project" json:"project" form:"project"`
	ProjectId        int64  `gorm:"column:project_id" json:"project_id" form:"project_id"`
	ItemName         string `gorm:"column:item_name" json:"item_name" form:"item_name"`
	ItemId           string `gorm:"column:item_id" json:"item_id" form:"item_id"`
	SysItemId        int64  `gorm:"column:sys_item_id" json:"sys_item_id" form:"sys_item_id"`
	ItemNameAddition string `gorm:"column:item_name_addition" json:"item_name_addition" form:"item_name_addition"`
	Item             string `gorm:"column:item" json:"item" form:"item"`
	RangeType        int64  `gorm:"column:range_type" json:"range_type" form:"range_type"`
	RangeMin         string `gorm:"column:range_min" json:"range_min" form:"range_min"`
	RangeMax         string `gorm:"column:range_max" json:"range_max" form:"range_max"`
	RangeValue       string `gorm:"column:range_value" json:"range_value" form:"range_value"`
	RangeOptions     string `gorm:"column:range_options" json:"range_options" form:"range_options"`
	Unit             string `gorm:"column:unit" json:"unit" form:"unit"`
	Status           int64  `gorm:"column:status" json:"status" form:"status"`
	CreatedTime      int64  `gorm:"column:created_time" json:"created_time" form:"created_time"`
	UpdatedTime      int64  `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
}

func (InspectionReference) TableName() string {
	return "xt_inspection_reference"
}

type UserInspectionProjectCounts struct {
	PatientId           int64
	Count               int64
	ProjectId           int64
	ProjectName         string
	InspectionFrequency string
	Sort                int64
}

type UserInspectionProjectCount struct {
	PatientId int64
	Count     int64
	ProjectId int64
}

type UserDoctorAdvicesCount struct {
	PatientId int64
	Count     int64
}

type InspectionReferenceMap struct {
	ProjectName         string                `gorm:"-" json:"project_name" form:"project_name"`
	Project             string                `gorm:"-" json:"project" form:"project"`
	ProjectId           int64                 `gorm:"-" json:"project_id" form:"project_id"`
	Count               int64                 `gorm:"-" json:"count" form:"count"`
	InspectionReference []InspectionReference `gorm:"-" json:"inspection_reference" form:"inspection_reference"`
}

type InepectionForm struct {
	Method         string `json:"method"`
	ProjectId      int64  `json:"project_id"`
	InspectDate    string `json:"inspect_date"`
	OldInspectDate string `json:"old_inspect_date"`
	FormItem       []struct {
		ID          int64  `json:"id"`
		ProjectId   int64  `json:"project_id"`
		ProjectName string `json:"project_name"`
		ItemId      int64  `json:"item_id"`
		Item        string `json:"item"`
		ItemName    string `json:"item_name"`
		RangeType   int64  `json:"range_type"`
		Value       string `json:"value"`
	} `json:"formItem"`
}

type InspectionDate struct {
	InspectDate int64
}

type AdviceDate struct {
	RecordDate int64
}

type XtPatientFeedback struct {
	ID          int64  `gorm:"column:id" json:"id" form:"id"`
	ProblemType int64  `gorm:"column:problem_type" json:"problem_type" form:"problem_type"`
	Title       string `gorm:"column:title" json:"title" form:"title"`
	Content     string `gorm:"column:content" json:"content" form:"content"`
	Image       string `gorm:"column:image" json:"image" form:"image"`
	Phone       string `gorm:"column:phone" json:"phone" form:"phone"`
	TimeQuantum int64  `gorm:"column:time_quantum" json:"time_quantum" form:"time_quantum"`
	Ctime       int64  `gorm:"column:ctime" json:"ctime" form:"ctime"`
	Mtime       int64  `gorm:"column:mtime" json:"mtime" form:"mtime"`
	Status      int64  `gorm:"column:status" json:"status" form:"status"`
	UserOrgId   int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
	AdminUserId int64  `gorm:"column:admin_user_id" json:"admin_user_id" form:"admin_user_id"`
	AppId       int64  `gorm:"column:app_id" json:"app_id" form:"app_id"`
}

func (XtPatientFeedback) TableName() string {
	return "xt_patient_feedback"
}
