package model import ( "SciencesServer/utils" ) type Gender struct { Gender GenderKind `gorm:"column:gender;type:tinyint(1);default:1;comment:性别(1:男,2:女)" json:"gender"` // 性别(1:男,2:女) } type GenderKind int const ( // GenderKindForMale 男性 GenderKindForMale GenderKind = iota + 1 // GenderKindForFemale 女性 GenderKindForFemale ) func (m *Gender) GenderTitle() string { if m.Gender == GenderKindForMale { return "男" } else if m.Gender == GenderKindForFemale { return "女" } return "" } // Image 单一图片信息 type Image struct { Image string `gorm:"column:image;type:varchar(255);default:null;comment:图片" json:"image"` } func (m *Image) Analysis(domain string) string { return domain + m.Image } // Images 多个图片信息 type Images struct { Images string `gorm:"column:images;type:text;default:null;comment:图片" json:"images"` } // AnalysisSlice Slice解析 func (m *Images) AnalysisSlice(domain string) []string { images := make([]string, 0) utils.FromJSON(m.Images, &images) for k, v := range images { images[k] = domain + v } return images } type Local struct { Local uint64 `gorm:"column:local;type:int(11);default:0;comment:数据位置来源" json:"-"` } // AccountStatus 账号状态 type AccountStatus struct { Status AccountStatusKind `gorm:"column:status;type:tinyint(1);default:1;comment:状态(1:启用,2:禁用)" json:"-"` } // AccountStatusKind 状态 type AccountStatusKind int const ( // AccountStatusForEnable 启用 AccountStatusForEnable AccountStatusKind = iota + 1 // AccountStatusForDisable 禁用 AccountStatusForDisable ) // ShelfStatus 上下架状态 type ShelfStatus struct { ShelfStatus ShelfStatusKind `gorm:"column:shelf_status;type:tinyint(1);default:0;comment:上下架状态(1:上架,2:下架)" json:"shelf_status"` } type ShelfStatusKind int const ( // ShelfStatusForUp 上架 ShelfStatusForUp ShelfStatusKind = iota // ShelfStatusForDown 下架 ShelfStatusForDown ) // ExamineStatus 审核状态 type ExamineStatus struct { Status ExamineStatusKind `gorm:"column:status;type:tinyint(1);default:0;comment:审核状态(0:审核中,1:审核通过,2:审核拒绝)" json:"status"` } // ExamineStatusKind 审核状态 type ExamineStatusKind int const ( // ExamineStatusForOngoing 审核中 ExamineStatusForOngoing ExamineStatusKind = iota // ExamineStatusForAgree 审核通过 ExamineStatusForAgree // ExamineStatusForRefuse 审核拒绝 ExamineStatusForRefuse ) type Area struct { Province uint64 `gorm:"column:province;type:int;default:0;comment:所在省" json:"province"` City uint64 `gorm:"column:city;type:int;default:0;comment:所在市" json:"city"` District uint64 `gorm:"column:district;type:int;default:0;comment:所在区/县" json:"district"` Address string `gorm:"column:address;type:varchar(255);default:null;comment:详细地址" json:"address"` } // Position 坐标信息 type Position struct { Longitude float64 `json:"longitude"` // 经度 Latitude float64 `json:"latitude"` // 纬度 } // Format 格式化 func (m *Position) Format() string { return utils.AnyToJSON(m) }