package models

type Org struct {
	Id              int    `gorm:"PRIMARY_KEY;AUTO_INCREMENT" json:"id"` // 机构 ID
	Creator         int    `json:"creator"`                              // 创建者，即管理员用户的 id
	OrgName         string `gorm:"column:org_name" json:"org_name"`
	OrgShortName    string `gorm:"column:org_short_name" json:"org_short_name"` // 简称
	OrgLogo         string `gorm:"column:org_logo" json:"org_logo"`
	OrgIntroduction string `gorm:"column:org_introduction" json:"org_introduction"`
	Province        int    `json:"province"` // 省，代号，下面的市、区也一样
	City            int    `json:"city"`
	District        int    `json:"district"`
	Address         string `json:"address"`                   // 详细地址
	Illness         string `json:"illness"`                   // 服务病种 多个并用“,”隔开
	Status          int8   `json:"status"`                    // 状态 0.无效 1.有效 2.禁用
	CreateTime      int64  `gorm:"column:ctime" json:"ctime"` // 创建时间
	ModifyTime      int64  `gorm:"column:mtime" json:"mtime"` // 修改时间

	OrgType        int64         `gorm:"column:org_type" json:"org_type"`
	Evaluate       float64       `gorm:"column:evaluate" json:"evaluate"`
	Comments       int64         `gorm:"column:comments" json:"comments"`
	OperatingState int64         `gorm:"column:operating_state" json:"operating_state"`
	Claim          int64         `gorm:"column:claim" json:"claim"`
	Telephone      string        `gorm:"column:telephone" json:"telephone"`
	BusinessTime   string        `gorm:"column:business_time" json:"business_time"`
	BusinessWeek   string        `gorm:"column:business_week" json:"business_week"`
	Gallery        string        `gorm:"column:gallery" json:"gallery"`
	OrgGallery     []*OrgGallery `gorm:"ForeignKey:OrgId" json:"org_gallery"`
}

func (Org) TableName() string {
	return "sgj_user_org"
}

type Illness struct {
	Id          int    `gorm:"PRIMARY_KEY;AUTO_INCREMENT"`
	IllnessName string `gorm:"colunm:illness_name"`
	Status      int8   // 状态 0.无效 1.有效 2.禁用
	CreateTime  int64  `gorm:"column:created_time"` // 创建时间
	ModifyTime  int64  `gorm:"column:updated_time"` // 修改时间
}

func (Illness) TableName() string {
	return "sgj_user_illness"
}

type OrgType struct {
	ID          int64  `gorm:"column:id" json:"id" form:"id"`
	Name        string `gorm:"column:name" json:"name" form:"name"`
	ShortName   string `gorm:"column:short_name" json:"short_name" form:"short_name"`
	Pid         int64  `gorm:"column:pid" json:"-"`
	Status      int64  `gorm:"column:status" json:"-"`
	CreatedTime int64  `gorm:"column:created_time" json:"-"`
	UpdatedTime int64  `gorm:"column:updated_time" json:"-"`
}

func (OrgType) TableName() string {
	return "sgj_user_org_type"
}

type ServeSubscibe struct {
	ID          int64 `gorm:"column:id" json:"id"`
	OrgId       int64 `gorm:"column:org_id" json:"org_id"`
	PeriodStart int64 `gorm:"column:period_start" json:"period_start"`
	PeriodEnd   int64 `gorm:"column:period_end" json:"period_end"`
	Status      int64 `gorm:"column:status" json:"status"`
	CreatedTime int64 `gorm:"column:created_time" json:"-"`
	UpdatedTime int64 `gorm:"column:updated_time" json:"-"`
	State       int64 `gorm:"column:state" json:"state" form:"statstateus"`
}

func (ServeSubscibe) TableName() string {
	return "sgj_serve_subscibe"
}

type OrgGallery struct {
	ID     int64  `gorm:"column:id" json:"id" form:"id"`
	Url    string `gorm:"column:url" json:"url" form:"url"`
	Type   int64  `gorm:"column:type" json:"type" form:"type"`
	OrgId  int64  `gorm:"column:org_id" json:"org_id" form:"org_id"`
	UserId int64  `gorm:"column:user_id" json:"user_id" form:"user_id"`
	Status int64  `gorm:"column:status" json:"status" form:"status"`
	Ctime  int64  `gorm:"column:ctime" json:"ctime" form:"ctime"`
	Mtime  int64  `gorm:"column:mtime" json:"mtime" form:"mtime"`
}

func (OrgGallery) TableName() string {
	return "sgj_user_org_gallery"
}
