184 lines
6.4 KiB
Go
184 lines
6.4 KiB
Go
|
|
package model
|
||
|
|
|
||
|
|
// SiteHome 是官网首页聚合数据,供前端一次性渲染核心官网模块。
|
||
|
|
type SiteHome struct {
|
||
|
|
Hero HeroBlock `json:"hero"`
|
||
|
|
Products []ProductBlock `json:"products"`
|
||
|
|
Highlights []ValueBlock `json:"highlights"`
|
||
|
|
Faqs []FaqBlock `json:"faqs"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// HeroBlock 描述官网主视觉文案和关键指标。
|
||
|
|
type HeroBlock struct {
|
||
|
|
Title string `json:"title"`
|
||
|
|
Subtitle string `json:"subtitle"`
|
||
|
|
PrimaryCTA string `json:"primary_cta"`
|
||
|
|
SecondaryCTA string `json:"secondary_cta"`
|
||
|
|
Stats []StatBlock `json:"stats"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// StatBlock 是官网展示的关键业务指标。
|
||
|
|
type StatBlock struct {
|
||
|
|
Value string `json:"value"`
|
||
|
|
Label string `json:"label"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// ProductBlock 描述患者端、医生端、老板端、推广员端和 PC 后台。
|
||
|
|
type ProductBlock struct {
|
||
|
|
Name string `json:"name"`
|
||
|
|
Role string `json:"role"`
|
||
|
|
Description string `json:"description"`
|
||
|
|
Features []string `json:"features"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// ValueBlock 描述诊所 SaaS 的核心能力。
|
||
|
|
type ValueBlock struct {
|
||
|
|
Title string `json:"title"`
|
||
|
|
Description string `json:"description"`
|
||
|
|
Icon string `json:"icon"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// FaqBlock 描述官网常见问题。
|
||
|
|
type FaqBlock struct {
|
||
|
|
Question string `json:"question"`
|
||
|
|
Answer string `json:"answer"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// Plan 是 SaaS 套餐展示与订购使用的数据模型。
|
||
|
|
type Plan struct {
|
||
|
|
Id int `json:"id"`
|
||
|
|
Code string `json:"code"`
|
||
|
|
Name string `json:"name"`
|
||
|
|
Description string `json:"description"`
|
||
|
|
MonthlyFee int `json:"monthly_fee"`
|
||
|
|
YearlyFee int `json:"yearly_fee"`
|
||
|
|
Recommended bool `json:"recommended"`
|
||
|
|
Features []PlanFeature `json:"features"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// PlanFeature 是套餐权益明细。
|
||
|
|
type PlanFeature struct {
|
||
|
|
Name string `json:"name"`
|
||
|
|
Value string `json:"value"`
|
||
|
|
Highlight bool `json:"highlight"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// Lead 是官网咨询或预约演示线索。
|
||
|
|
type Lead struct {
|
||
|
|
Name string `json:"name"`
|
||
|
|
Phone string `json:"phone"`
|
||
|
|
ClinicName string `json:"clinic_name"`
|
||
|
|
City string `json:"city"`
|
||
|
|
PlanCode string `json:"plan_code"`
|
||
|
|
SourcePage string `json:"source_page"`
|
||
|
|
Remark string `json:"remark"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// Order 是套餐订购订单。
|
||
|
|
type Order struct {
|
||
|
|
OrderNo string `json:"order_no"`
|
||
|
|
TenantName string `json:"tenant_name"`
|
||
|
|
ContactName string `json:"contact_name"`
|
||
|
|
Phone string `json:"phone"`
|
||
|
|
PlanCode string `json:"plan_code"`
|
||
|
|
BillingCycle string `json:"billing_cycle"`
|
||
|
|
Amount int `json:"amount"`
|
||
|
|
Status string `json:"status"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// Menu 是后台多级菜单节点,支持单列和双列布局渲染。
|
||
|
|
type Menu struct {
|
||
|
|
Id int `json:"id"`
|
||
|
|
ParentId int `json:"parent_id"`
|
||
|
|
Title string `json:"title"`
|
||
|
|
Path string `json:"path"`
|
||
|
|
Component string `json:"component"`
|
||
|
|
Icon string `json:"icon"`
|
||
|
|
Type string `json:"type"`
|
||
|
|
Permission string `json:"permission"`
|
||
|
|
MenuArea int `json:"menu_area"`
|
||
|
|
Children []Menu `json:"children"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// MenuLayout 是后台菜单布局配置。
|
||
|
|
type MenuLayout struct {
|
||
|
|
GlobalLayout string `json:"global_layout"`
|
||
|
|
UserLayout string `json:"user_layout"`
|
||
|
|
FinalLayout string `json:"final_layout"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// SitePage 是官网页面配置,包含 SEO 与 GSO/GEO 信息。
|
||
|
|
type SitePage struct {
|
||
|
|
Id int `json:"id"`
|
||
|
|
Code string `json:"code"`
|
||
|
|
Title string `json:"title"`
|
||
|
|
SeoTitle string `json:"seo_title"`
|
||
|
|
SeoKeywords string `json:"seo_keywords"`
|
||
|
|
SeoDescription string `json:"seo_description"`
|
||
|
|
GsoContent map[string]interface{} `json:"gso_content"`
|
||
|
|
Status int `json:"status"`
|
||
|
|
Sort int `json:"sort"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// SiteSection 是官网页面模块配置,内容 JSON 承载各模块可编辑字段。
|
||
|
|
type SiteSection struct {
|
||
|
|
Id int `json:"id"`
|
||
|
|
PageCode string `json:"page_code"`
|
||
|
|
SectionKey string `json:"section_key"`
|
||
|
|
Title string `json:"title"`
|
||
|
|
Subtitle string `json:"subtitle"`
|
||
|
|
Content map[string]interface{} `json:"content"`
|
||
|
|
Status int `json:"status"`
|
||
|
|
Sort int `json:"sort"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// SiteMedia 是官网素材,覆盖 LOGO、favicon、页面图、分享图和招聘图。
|
||
|
|
type SiteMedia struct {
|
||
|
|
Id int `json:"id"`
|
||
|
|
MediaType string `json:"media_type"`
|
||
|
|
GroupCode string `json:"group_code"`
|
||
|
|
Title string `json:"title"`
|
||
|
|
Url string `json:"url"`
|
||
|
|
Alt string `json:"alt"`
|
||
|
|
Status int `json:"status"`
|
||
|
|
Sort int `json:"sort"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// RecruitJob 是招聘职位信息。
|
||
|
|
type RecruitJob struct {
|
||
|
|
Id int `json:"id"`
|
||
|
|
Title string `json:"title"`
|
||
|
|
Department string `json:"department"`
|
||
|
|
JobType string `json:"job_type"`
|
||
|
|
City string `json:"city"`
|
||
|
|
Salary string `json:"salary"`
|
||
|
|
Experience string `json:"experience"`
|
||
|
|
Description string `json:"description"`
|
||
|
|
Requirements []string `json:"requirements"`
|
||
|
|
Manager string `json:"manager"`
|
||
|
|
ManagerTitle string `json:"manager_title"`
|
||
|
|
Email string `json:"email"`
|
||
|
|
Phone string `json:"phone"`
|
||
|
|
Featured bool `json:"featured"`
|
||
|
|
Status int `json:"status"`
|
||
|
|
Sort int `json:"sort"`
|
||
|
|
PublishedDate string `json:"published_date"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// SiteSettings 是站点全局配置,页面未配置时作为默认值。
|
||
|
|
type SiteSettings struct {
|
||
|
|
SiteTitle string `json:"site_title"`
|
||
|
|
SiteLogo string `json:"site_logo"`
|
||
|
|
SiteLogoDark string `json:"site_logo_dark"`
|
||
|
|
SiteFavicon string `json:"site_favicon"`
|
||
|
|
IcpText string `json:"icp_text"`
|
||
|
|
Copyright string `json:"copyright"`
|
||
|
|
ContactPhone string `json:"contact_phone"`
|
||
|
|
ContactEmail string `json:"contact_email"`
|
||
|
|
ContactAddress string `json:"contact_address"`
|
||
|
|
DefaultSeo map[string]interface{} `json:"default_seo"`
|
||
|
|
DefaultGso map[string]interface{} `json:"default_gso"`
|
||
|
|
AmapKey string `json:"amap_key"`
|
||
|
|
AmapSecurityCode string `json:"amap_security_code"`
|
||
|
|
}
|