package gmodel

import (
	"context"
	"gorm.io/gorm"
)

type FsProductTemplateV2 struct {
	Id           int64   `gorm:"primary_key" json:"id"`
	ProductId    *int64  `gorm:"default:0" json:"product_id"`     // 产品ID
	ModelId      *int64  `gorm:"default:0" json:"model_id"`       // 模型ID
	Title        *string `gorm:"default:''" json:"title"`         // 模板(sku),预留字段
	Name         *string `gorm:"default:''" json:"name"`          // 名称
	CoverImg     *string `gorm:"default:''" json:"cover_img"`     // 模板背景图
	TemplateInfo *string `gorm:"default:''" json:"template_info"` // 模板详情
	MaterialImg  *string `gorm:"default:''" json:"material_img"`  // 合成好的贴图
	Sort         *int64  `gorm:"default:0" json:"sort"`           // 排序
	LogoWidth    *int64  `gorm:"default:0" json:"logo_width"`     // logo图最大宽度
	LogoHeight   *int64  `gorm:"default:0" json:"logo_height"`    // logo图最大高度
	IsPublic     *int64  `gorm:"default:0" json:"is_public"`      // 是否可公用(1:可以,0:不可以)
	Status       *int64  `gorm:"default:1" json:"status"`         // 状态1正常 2异常
	Ctime        *int64  `gorm:"default:0" json:"ctime"`          // 添加时间
	Tag          *string `gorm:"default:''" json:"tag"`           // 标签(用户自填)
	IsDel        *int64  `gorm:"default:0" json:"is_del"`         // 是否删除 1删除
}
type FsProductTemplateV2Model struct {
	db *gorm.DB
}

func NewFsProductTemplateV2Model(db *gorm.DB) *FsProductTemplateV2Model {
	return &FsProductTemplateV2Model{db}
}
func (t *FsProductTemplateV2Model) FindAllByProductIds(ctx context.Context, productIds []int64) (resp []FsProductTemplateV2, err error) {
	if len(productIds) == 0 {
		return
	}
	err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` in (?) and `is_del` = ? and `status` = ?", productIds, 0, 1).Find(&resp).Error
	if err != nil {
		return nil, err
	}
	return
}