package v1

import (
	"database/sql"
	"time"

	"gorm.io/plugin/soft_delete"
)

type TrustAdvisor struct {
	ID              uint64                `json:"id" gorm:"primary_key;AUTO_INCREMENT;column:id"`
	CreatedAt       time.Time             `json:"createdAt" gorm:"column:createdAt"`
	UpdatedAt       sql.NullTime          `json:"updatedAt" gorm:"column:updatedAt"`
	DeletedAt       sql.NullTime          `json:"deletedAt" gorm:"column:deletedAt"`
	IsDel           soft_delete.DeletedAt `json:"isDel" gorm:"column:isDel;softDelete:flag,DeletedAtField:DeletedAt"`
	CloudResourceID uint64                `json:"cloudResourceID" gorm:"column:cloudResourceID"`
	Resource        CloudResource         `json:"resource" gorm:"foreignkey:CloudResourceID;references:ID"`
	Category        string                `json:"category" gorm:"column:category"`
	Description     string                `json:"description" gorm:"column:description"`
	TrustID         string                `json:"trustID" gorm:"column:trustID"`
	Name            string                `json:"name" gorm:"column:name"`
	Status          string                `json:"status" gorm:"column:status"`
	Timestamp       time.Time             `json:"timestamp" gorm:"column:timestamp"`
}

func (c *TrustAdvisor) TableName() string {
	return "trust_advisor"
}
