35 lines
1.3 KiB
Go
35 lines
1.3 KiB
Go
package models
|
||
|
||
import (
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
// CorsWhitelist - CORS için izin verilen origin'ler
|
||
type CorsWhitelist struct {
|
||
gorm.Model
|
||
Origin string `gorm:"type:varchar(255);uniqueIndex;not null" json:"origin"`
|
||
Description string `gorm:"type:varchar(255)" json:"description"`
|
||
IsActive bool `gorm:"default:true" json:"is_active"`
|
||
CreatedBy string `gorm:"type:varchar(255)" json:"created_by,omitempty"`
|
||
}
|
||
|
||
// CorsBlacklist - CORS için yasaklanan origin'ler
|
||
type CorsBlacklist struct {
|
||
gorm.Model
|
||
Origin string `gorm:"type:varchar(255);uniqueIndex;not null" json:"origin"`
|
||
Reason string `gorm:"type:varchar(255)" json:"reason"`
|
||
IsActive bool `gorm:"default:true" json:"is_active"`
|
||
CreatedBy string `gorm:"type:varchar(255)" json:"created_by,omitempty"`
|
||
}
|
||
|
||
// RateLimitSetting - Rate limit ayarları
|
||
type RateLimitSetting struct {
|
||
gorm.Model
|
||
Name string `gorm:"type:varchar(100);uniqueIndex;not null" json:"name"` // e.g., "login", "register", "api"
|
||
Description string `gorm:"type:varchar(255)" json:"description"`
|
||
MaxRequests int64 `gorm:"not null" json:"max_requests"` // Max istek sayısı
|
||
WindowSeconds int `gorm:"not null" json:"window_seconds"` // Zaman penceresi (saniye)
|
||
IsActive bool `gorm:"default:true" json:"is_active"`
|
||
UpdatedBy string `gorm:"type:varchar(255)" json:"updated_by,omitempty"`
|
||
}
|