Nucleus/pkg/internal/models/product.go
2025-01-09 18:56:30 +08:00

31 lines
989 B
Go

package models
import (
"git.solsynth.dev/hypernet/nexus/pkg/nex/cruda"
"gorm.io/datatypes"
)
type Product struct {
cruda.BaseModel
Icon string `json:"icon"` // random id of atttachment
Name string `json:"name"`
Alias string `json:"alias" gorm:"uniqueIndex"`
Description string `json:"description"`
Previews datatypes.JSONSlice[string] `json:"previews"` // random id of attachments
Tags datatypes.JSONSlice[string] `json:"tags"`
Meta ProductMeta `json:"meta" gorm:"foreignKey:ProductID"`
Releases []ProductRelease `json:"releases" gorm:"foreignKey:ProductID"`
AccountID uint `json:"account_id"`
}
type ProductMeta struct {
cruda.BaseModel
Introduction string `json:"introduction"`
Attachments datatypes.JSONSlice[string] `json:"attachments"` // random id of attachments
ProductID uint `json:"product_id"`
}