package model

import "gorm.io/datatypes"

type Website struct {
	Base
	Comment     string         `gorm:"comment"           json:"comment"`
	ServerNames datatypes.JSON `gorm:"server_names"      json:"server_names"`
	Ports       datatypes.JSON `gorm:"ports"             json:"ports"`
	Upstreams   datatypes.JSON `gorm:"upstreams"         json:"upstreams"`

	CertFilename string `gorm:"cert_filename"    json:"cert_filename"`
	KeyFilename  string `gorm:"key_filename"     json:"key_filename"`

	IsEnabled bool `gorm:"is_enabled;default=true"       json:"is_enabled"`

	// Rate limiting (nginx limit_req)
	RateLimitEnabled bool   `gorm:"rate_limit_enabled;default:false" json:"rate_limit_enabled"`
	RateLimitRPS     int    `gorm:"rate_limit_rps;default:100"       json:"rate_limit_rps"`
	RateLimitBurst   int    `gorm:"rate_limit_burst;default:200"     json:"rate_limit_burst"`
	RateLimitAction  string `gorm:"rate_limit_action;default:reject" json:"rate_limit_action"`

	// JS Challenge (human verification)
	ChallengeEnabled bool `gorm:"challenge_enabled;default:false"    json:"challenge_enabled"`
}
