package models

import (
	"time"

	"github.com/google/uuid"
)

// Home model structure
// Includes a many-to-many relation with tags via home_tags.
type Home struct {
	ID        uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey" json:"id"`
	Name      string    `gorm:"type:varchar(254);not null" json:"name"`
	Title     string    `gorm:"type:varchar(254);not null" json:"title"`
	Button1   string    `gorm:"type:varchar(254);not null" json:"button1"`
	Button2   string    `gorm:"type:varchar(254);not null" json:"button2"`
	Video     string    `gorm:"type:text" json:"video,omitempty"`
	Keywords  string    `gorm:"type:varchar(254);not null" json:"keywords"`
	Image     string    `gorm:"type:text" json:"image,omitempty"`
	Slug      string    `gorm:"type:varchar(250);uniqueIndex;not null" json:"slug"`
	IsActive  bool      `gorm:"default:false" json:"is_active"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
	Tags      []Tag     `gorm:"many2many:home_tags;" json:"tags,omitempty"`
}

// TableName overrides the table name used by Home to `homes`
func (Home) TableName() string {
	return "homes"
}
