// Package models 数据模型包，定义反馈相关的数据库模型
package models

import (
	"git.apinb.com/bsm-sdk/core/database"
	"git.apinb.com/bsm-sdk/core/types"
)

// FeedbackItem 反馈记录模型
// 用于存储用户反馈的基本信息和关联数据
type FeedbackItem struct {
	types.Std_IICUDS                       // 标准IICUDS字段（ID、Identity、CreatedAt、UpdatedAt、Status）
	types.Std_Passport                     // 标准Passport字段（用户身份信息）
	Category           string              `gorm:"column:category;type:varchar(255);default:'';" json:"category"`  // 分类
	UserName           string              `gorm:"column:user_name;type:varchar(20);default:'';" json:"user_name"` // 用户名
	Email              string              `gorm:"column:email;type:varchar(255);default:'';" json:"email"`        // 邮箱
	Phone              string              `gorm:"column:phone;type:varchar(20);default:'';" json:"phone"`         // 手机号码
	Status             int32               `gorm:"column:status;default:1;" json:"status"`                         // 状态,1未处理,2已处理,也可以调用方自行设置,如果未设置则默认是1
	Title              string              `gorm:"column:title;type:varchar(255);default:'';" json:"title"`        // 标题
	Content            string              `gorm:"column:content;type:varchar(500);" json:"content"`               // 内容
	Remark             string              `gorm:"column:remark;type:varchar(500);" json:"remark"`                 // 备注
	Agency             string              `gorm:"column:agency;type:varchar(255);default:'';" json:"agency"`      // 机构
	Images             []FeedbackImage     `gorm:"foreignKey:ItemIdentity;references:Identity" json:"images"`      // 图片列表
	Accessories        []FeedbackAccessory `gorm:"foreignKey:ItemIdentity;references:Identity" json:"accessories"` // 附件列表
}

func init() {
	// 注册模型到数据库迁移表
	database.MigrateTables = append(database.MigrateTables, &FeedbackItem{})
}

// TableName 返回数据库表名
func (FeedbackItem) TableName() string {
	return "feedback_item" // 对应数据库表名
}
