init: init refactor
This commit is contained in:
@@ -0,0 +1,327 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"sundynix-micro-go/common/model"
|
||||
"time"
|
||||
)
|
||||
|
||||
// ========== 用户扩展表(plant业务特有字段) ==========
|
||||
|
||||
// SundynixPlantUserProfile 植物服务用户扩展表
|
||||
type SundynixPlantUserProfile struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;uniqueIndex;column:user_id" json:"userId"`
|
||||
NickName string `gorm:"size:100;column:nick_name" json:"nickName"`
|
||||
AvatarID string `gorm:"size:50;column:avatar_id" json:"avatarId"`
|
||||
LevelID string `gorm:"size:50;column:level_id" json:"levelId"`
|
||||
CurrentSunlight int64 `gorm:"not null;default:0;column:current_sunlight" json:"currentSunlight"`
|
||||
TotalSunlight int64 `gorm:"not null;default:0;column:total_sunlight" json:"totalSunlight"`
|
||||
PlantCount int64 `gorm:"not null;default:0;column:plant_count" json:"plantCount"`
|
||||
CareCount int64 `gorm:"not null;default:0;column:care_count" json:"careCount"`
|
||||
PostCount int64 `gorm:"not null;default:0;column:post_count" json:"postCount"`
|
||||
WaterCount int64 `gorm:"not null;default:0;column:water_count" json:"waterCount"`
|
||||
FertilizeCount int64 `gorm:"not null;default:0;column:fertilize_count" json:"fertilizeCount"`
|
||||
RepotCount int64 `gorm:"not null;default:0;column:repot_count" json:"repotCount"`
|
||||
PruneCount int64 `gorm:"not null;default:0;column:prune_count" json:"pruneCount"`
|
||||
PhotoCount int64 `gorm:"not null;default:0;column:photo_count" json:"photoCount"`
|
||||
}
|
||||
|
||||
func (SundynixPlantUserProfile) TableName() string {
|
||||
return "sundynix_plant_user_profile"
|
||||
}
|
||||
|
||||
// ========== 我的植物 ==========
|
||||
|
||||
// SundynixMyPlant 我的植物
|
||||
type SundynixMyPlant struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
Name string `gorm:"size:20;column:name" json:"name"`
|
||||
PlantTime time.Time `gorm:"column:plant_time" json:"plantTime"`
|
||||
Status int `gorm:"column:status" json:"status"`
|
||||
Placement string `gorm:"size:50;column:placement" json:"placement"`
|
||||
PotMaterial string `gorm:"size:50;column:pot_material" json:"potMaterial"`
|
||||
PotSize string `gorm:"size:50;column:pot_size" json:"potSize"`
|
||||
Sunlight string `gorm:"size:50;column:sunlight" json:"sunlight"`
|
||||
PlantingMaterial string `gorm:"size:50;column:planting_material" json:"plantingMaterial"`
|
||||
}
|
||||
|
||||
func (SundynixMyPlant) TableName() string {
|
||||
return "sundynix_my_plant"
|
||||
}
|
||||
|
||||
// SundynixMyPlantOss 植物图片关联表
|
||||
type SundynixMyPlantOss struct {
|
||||
MyPlantID string `gorm:"size:50;primaryKey;column:sundynix_my_plant_id" json:"myPlantId"`
|
||||
OssID string `gorm:"size:50;primaryKey;column:sundynix_oss_id" json:"ossId"`
|
||||
}
|
||||
|
||||
func (SundynixMyPlantOss) TableName() string {
|
||||
return "sundynix_my_plant_oss"
|
||||
}
|
||||
|
||||
// ========== 养护计划/记录 ==========
|
||||
|
||||
// SundynixCarePlan 养护计划
|
||||
type SundynixCarePlan struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;column:user_id" json:"userId"`
|
||||
PlantID string `gorm:"size:50;index;column:plant_id" json:"plantId"`
|
||||
Icon string `gorm:"type:text;column:icon" json:"icon"`
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
Period int `gorm:"column:period" json:"period"`
|
||||
TargetAction string `gorm:"size:32;index;column:target_action" json:"targetAction"`
|
||||
}
|
||||
|
||||
func (SundynixCarePlan) TableName() string {
|
||||
return "sundynix_care_plan"
|
||||
}
|
||||
|
||||
// SundynixCareRecord 养护记录
|
||||
type SundynixCareRecord struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;column:user_id" json:"userId"`
|
||||
PlantID string `gorm:"size:50;index;column:plant_id" json:"plantId"`
|
||||
PlanID string `gorm:"size:50;index;column:plan_id" json:"planId"`
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
Remark string `gorm:"size:200;column:remark" json:"remark"`
|
||||
Icon string `gorm:"type:text;column:icon" json:"icon"`
|
||||
}
|
||||
|
||||
func (SundynixCareRecord) TableName() string {
|
||||
return "sundynix_care_record"
|
||||
}
|
||||
|
||||
// SundynixCareTask 养护任务
|
||||
type SundynixCareTask struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;column:user_id" json:"userId"`
|
||||
PlantID string `gorm:"size:50;index;column:plant_id" json:"plantId"`
|
||||
PlanID string `gorm:"size:50;index;column:plan_id" json:"planId"`
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
Icon string `gorm:"type:text;column:icon" json:"icon"`
|
||||
TargetAction string `gorm:"size:32;column:target_action" json:"targetAction"`
|
||||
DueDate time.Time `gorm:"column:due_date" json:"dueDate"`
|
||||
Status int `gorm:"default:1;column:status" json:"status"`
|
||||
}
|
||||
|
||||
func (SundynixCareTask) TableName() string {
|
||||
return "sundynix_care_task"
|
||||
}
|
||||
|
||||
// SundynixGrowthRecord 成长记录
|
||||
type SundynixGrowthRecord struct {
|
||||
model.BaseModel
|
||||
PlantID string `gorm:"size:50;index;column:plant_id" json:"plantId"`
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
Tag string `gorm:"size:50;column:tag" json:"tag"`
|
||||
Desc string `gorm:"size:200;column:desc" json:"desc"`
|
||||
Content string `gorm:"size:200;column:content" json:"content"`
|
||||
}
|
||||
|
||||
func (SundynixGrowthRecord) TableName() string {
|
||||
return "sundynix_growth_record"
|
||||
}
|
||||
|
||||
// ========== 百科 ==========
|
||||
|
||||
// SundynixWiki 植物百科
|
||||
type SundynixWiki struct {
|
||||
model.BaseModel
|
||||
IsHot int `gorm:"column:is_hot" json:"isHot"`
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
LatinName string `gorm:"size:100;column:latin_name" json:"latinName"`
|
||||
Aliases string `gorm:"size:100;column:aliases" json:"aliases"`
|
||||
DistributionArea string `gorm:"type:text;column:distribution_area" json:"distributionArea"`
|
||||
Genus string `gorm:"size:20;column:genus" json:"genus"`
|
||||
Difficulty int `gorm:"column:difficulty" json:"difficulty"`
|
||||
LifeCycle string `gorm:"type:text;column:life_cycle" json:"lifeCycle"`
|
||||
GrowthHabit string `gorm:"type:text;column:growth_habit" json:"growthHabit"`
|
||||
ReproductionMethod string `gorm:"size:200;column:reproduction_method" json:"reproductionMethod"`
|
||||
PestsDiseases string `gorm:"size:200;column:pests_diseases" json:"pestsDiseases"`
|
||||
LightIntensity string `gorm:"size:50;column:light_intensity" json:"lightIntensity"`
|
||||
LightType string `gorm:"size:50;column:light_type" json:"lightType"`
|
||||
OptimalTempPeriod string `gorm:"size:30;column:optimal_temp_period" json:"optimalTempPeriod"`
|
||||
Stem string `gorm:"size:200;column:stem" json:"stem"`
|
||||
FoliageType string `gorm:"size:200;column:foliage_type" json:"foliageType"`
|
||||
FoliageColor string `gorm:"size:200;column:foliage_color" json:"foliageColor"`
|
||||
FoliageShape string `gorm:"size:200;column:foliage_shape" json:"foliageShape"`
|
||||
Height int `gorm:"column:height" json:"height"`
|
||||
FloweringPeriod string `gorm:"size:100;column:flowering_period" json:"floweringPeriod"`
|
||||
FloweringColor string `gorm:"size:100;column:flowering_color" json:"floweringColor"`
|
||||
FloweringShape string `gorm:"size:100;column:flowering_shape" json:"floweringShape"`
|
||||
FlowerDiameter int `gorm:"column:flower_diameter" json:"flowerDiameter"`
|
||||
Fruit string `gorm:"size:200;column:fruit" json:"fruit"`
|
||||
}
|
||||
|
||||
func (SundynixWiki) TableName() string {
|
||||
return "sundynix_wiki"
|
||||
}
|
||||
|
||||
// SundynixWikiClass 百科分类
|
||||
type SundynixWikiClass struct {
|
||||
model.BaseModel
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
OssID string `gorm:"size:50;column:oss_id" json:"ossId"`
|
||||
}
|
||||
|
||||
func (SundynixWikiClass) TableName() string {
|
||||
return "sundynix_wiki_class"
|
||||
}
|
||||
|
||||
// SundynixUserStar 用户收藏
|
||||
type SundynixUserStar struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
TargetID string `gorm:"size:50;index;column:target_id" json:"targetId"`
|
||||
Type string `gorm:"size:20;column:type" json:"type"` // wiki/post
|
||||
}
|
||||
|
||||
func (SundynixUserStar) TableName() string {
|
||||
return "sundynix_user_star"
|
||||
}
|
||||
|
||||
// ========== 社区 ==========
|
||||
|
||||
// SundynixPost 社区帖子
|
||||
type SundynixPost struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
Title string `gorm:"size:100;column:title" json:"title"`
|
||||
Content string `gorm:"size:500;column:content" json:"content"`
|
||||
ViewCount int `gorm:"default:0;column:view_count" json:"viewCount"`
|
||||
CommentCount int `gorm:"default:0;column:comment_count" json:"commentCount"`
|
||||
LikeCount int `gorm:"default:0;column:like_count" json:"likeCount"`
|
||||
StarCount int `gorm:"default:0;column:star_count" json:"starCount"`
|
||||
Location string `gorm:"size:100;column:location" json:"location"`
|
||||
HasReviewed int `gorm:"default:0;column:has_reviewed" json:"hasReviewed"`
|
||||
}
|
||||
|
||||
func (SundynixPost) TableName() string {
|
||||
return "sundynix_post"
|
||||
}
|
||||
|
||||
// SundynixPostComment 帖子评论
|
||||
type SundynixPostComment struct {
|
||||
model.BaseModel
|
||||
PostID string `gorm:"size:50;index;column:post_id" json:"postId"`
|
||||
UserID string `gorm:"size:50;column:user_id" json:"userId"`
|
||||
Content string `gorm:"size:500;column:content" json:"content"`
|
||||
ParentID string `gorm:"size:50;column:parent_id" json:"parentId"`
|
||||
}
|
||||
|
||||
func (SundynixPostComment) TableName() string {
|
||||
return "sundynix_post_comment"
|
||||
}
|
||||
|
||||
// SundynixPostLike 帖子点赞
|
||||
type SundynixPostLike struct {
|
||||
model.BaseModel
|
||||
PostID string `gorm:"size:50;index;column:post_id" json:"postId"`
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
}
|
||||
|
||||
func (SundynixPostLike) TableName() string {
|
||||
return "sundynix_post_like"
|
||||
}
|
||||
|
||||
// SundynixPostTopic 话题
|
||||
type SundynixPostTopic struct {
|
||||
model.BaseModel
|
||||
Name string `gorm:"size:50;column:name" json:"name"`
|
||||
PostCount int `gorm:"default:0;column:post_count" json:"postCount"`
|
||||
}
|
||||
|
||||
func (SundynixPostTopic) TableName() string {
|
||||
return "sundynix_post_topic"
|
||||
}
|
||||
|
||||
// ========== 积分商城 ==========
|
||||
|
||||
// SundynixExchangeItem 兑换商品
|
||||
type SundynixExchangeItem struct {
|
||||
model.BaseModel
|
||||
Name string `gorm:"size:100;column:name" json:"name"`
|
||||
Desc string `gorm:"size:200;column:desc" json:"desc"`
|
||||
ImgID string `gorm:"size:50;column:img_id" json:"imgId"`
|
||||
Cost int64 `gorm:"column:cost" json:"cost"`
|
||||
Stock int `gorm:"column:stock" json:"stock"`
|
||||
Status int `gorm:"default:1;column:status" json:"status"`
|
||||
}
|
||||
|
||||
func (SundynixExchangeItem) TableName() string {
|
||||
return "sundynix_exchange_item"
|
||||
}
|
||||
|
||||
// SundynixExchangeOrder 兑换订单
|
||||
type SundynixExchangeOrder struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
ItemID string `gorm:"size:50;column:item_id" json:"itemId"`
|
||||
Cost int64 `gorm:"column:cost" json:"cost"`
|
||||
Status int `gorm:"default:0;column:status" json:"status"`
|
||||
Address string `gorm:"size:200;column:address" json:"address"`
|
||||
}
|
||||
|
||||
func (SundynixExchangeOrder) TableName() string {
|
||||
return "sundynix_exchange_order"
|
||||
}
|
||||
|
||||
// ========== 等级/徽章配置 ==========
|
||||
|
||||
// SundynixLevelConfig 等级配置
|
||||
type SundynixLevelConfig struct {
|
||||
model.BaseModel
|
||||
Level int `gorm:"column:level" json:"level"`
|
||||
Title string `gorm:"size:50;column:title" json:"title"`
|
||||
MinSunlight int64 `gorm:"column:min_sunlight" json:"minSunlight"`
|
||||
Perks string `gorm:"size:200;column:perks" json:"perks"`
|
||||
}
|
||||
|
||||
func (SundynixLevelConfig) TableName() string {
|
||||
return "sundynix_level_config"
|
||||
}
|
||||
|
||||
// SundynixBadgeConfig 徽章配置
|
||||
type SundynixBadgeConfig struct {
|
||||
model.BaseModel
|
||||
Name string `gorm:"size:64;column:name" json:"name"`
|
||||
Description string `gorm:"size:255;column:description" json:"description"`
|
||||
IconID string `gorm:"size:50;column:icon_id" json:"iconId"`
|
||||
Dimension string `gorm:"size:32;index;column:dimension" json:"dimension"`
|
||||
GroupID string `gorm:"size:64;index;column:group_id" json:"groupId"`
|
||||
Tier int `gorm:"default:1;column:tier" json:"tier"`
|
||||
TargetAction string `gorm:"size:32;index;column:target_action" json:"targetAction"`
|
||||
Threshold int64 `gorm:"column:threshold" json:"threshold"`
|
||||
Comparator string `gorm:"size:10;default:'>=';column:comparator" json:"comparator"`
|
||||
RewardSunlight int64 `gorm:"column:reward_sunlight" json:"rewardSunlight"`
|
||||
Sort int `gorm:"default:1;column:sort" json:"sort"`
|
||||
}
|
||||
|
||||
func (SundynixBadgeConfig) TableName() string {
|
||||
return "sundynix_badge_config"
|
||||
}
|
||||
|
||||
// SundynixUserBadge 用户徽章
|
||||
type SundynixUserBadge struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
BadgeID string `gorm:"size:50;index;column:badge_id" json:"badgeId"`
|
||||
}
|
||||
|
||||
func (SundynixUserBadge) TableName() string {
|
||||
return "sundynix_user_badge"
|
||||
}
|
||||
|
||||
// SundynixAiChatHistory AI聊天历史
|
||||
type SundynixAiChatHistory struct {
|
||||
model.BaseModel
|
||||
UserID string `gorm:"size:50;index;column:user_id" json:"userId"`
|
||||
Role string `gorm:"size:20;column:role" json:"role"`
|
||||
Content string `gorm:"type:text;column:content" json:"content"`
|
||||
}
|
||||
|
||||
func (SundynixAiChatHistory) TableName() string {
|
||||
return "sundynix_ai_chat_history"
|
||||
}
|
||||
Reference in New Issue
Block a user