package models import "time" // DHCPSettings ist die node-lokale Singleton-Configuration des Kea-DHCPv4- // Servers (ob diese Node DHCP betreibt + globale Defaults). type DHCPSettings struct { ID int `gorm:"column:id;primaryKey" json:"id"` Enabled bool `gorm:"column:enabled" json:"enabled"` DefaultLease int `gorm:"column:default_lease" json:"default_lease"` MaxLease int `gorm:"column:max_lease" json:"max_lease"` DomainName string `gorm:"column:domain_name" json:"domain_name"` DNSServers string `gorm:"column:dns_servers" json:"dns_servers"` CreatedAt time.Time `gorm:"column:created_at" json:"created_at"` UpdatedAt time.Time `gorm:"column:updated_at" json:"updated_at"` } func (DHCPSettings) TableName() string { return "dhcp_settings" } // DHCPSubnet ist ein vom DHCP-Server bedientes Subnetz (an ein Interface // per NAME gebunden — cluster-sicher, da interface_id node-lokal wäre). type DHCPSubnet struct { ID int64 `gorm:"column:id;primaryKey" json:"id"` Name string `gorm:"column:name" json:"name"` InterfaceName string `gorm:"column:interface_name" json:"interface_name"` SubnetCIDR string `gorm:"column:subnet_cidr" json:"subnet_cidr"` PoolStart string `gorm:"column:pool_start" json:"pool_start"` PoolEnd string `gorm:"column:pool_end" json:"pool_end"` Gateway string `gorm:"column:gateway" json:"gateway"` DNSServers string `gorm:"column:dns_servers" json:"dns_servers"` LeaseTime *int `gorm:"column:lease_time" json:"lease_time,omitempty"` Active bool `gorm:"column:active" json:"active"` Description string `gorm:"column:description" json:"description"` CreatedAt time.Time `gorm:"column:created_at" json:"created_at"` UpdatedAt time.Time `gorm:"column:updated_at" json:"updated_at"` } func (DHCPSubnet) TableName() string { return "dhcp_subnets" } // DHCPReservation ist eine statische MAC→IP-Zuordnung innerhalb eines Subnets. type DHCPReservation struct { ID int64 `gorm:"column:id;primaryKey" json:"id"` SubnetID int64 `gorm:"column:subnet_id" json:"subnet_id"` Name string `gorm:"column:name" json:"name"` MACAddress string `gorm:"column:mac_address" json:"mac_address"` IPAddress string `gorm:"column:ip_address" json:"ip_address"` Hostname string `gorm:"column:hostname" json:"hostname"` Active bool `gorm:"column:active" json:"active"` CreatedAt time.Time `gorm:"column:created_at" json:"created_at"` UpdatedAt time.Time `gorm:"column:updated_at" json:"updated_at"` } func (DHCPReservation) TableName() string { return "dhcp_reservations" }