41 lines
1.8 KiB
Go
41 lines
1.8 KiB
Go
package models
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
// CorsWhitelist - CORS için izin verilen origin'ler
|
||
type CorsWhitelist struct {
|
||
ID uint64 `gorm:"type:bigint unsigned;autoIncrement;primaryKey" json:"id"`
|
||
Origin string `gorm:"type:varchar(255);uniqueIndex;not null" json:"origin"`
|
||
Description string `gorm:"type:text" json:"description"`
|
||
IsActive bool `gorm:"default:true" json:"is_active"`
|
||
CreatedBy string `gorm:"type:varchar(255)" json:"created_by,omitempty"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
// CorsBlacklist - CORS için yasaklanan origin'ler
|
||
type CorsBlacklist struct {
|
||
ID uint64 `gorm:"type:bigint unsigned;autoIncrement;primaryKey" json:"id"`
|
||
Origin string `gorm:"type:varchar(255);uniqueIndex;not null" json:"origin"`
|
||
Reason string `gorm:"type:text" json:"reason"`
|
||
IsActive bool `gorm:"default:true" json:"is_active"`
|
||
CreatedBy string `gorm:"type:varchar(255)" json:"created_by,omitempty"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
// RateLimitSetting - Rate limit ayarları
|
||
type RateLimitSetting struct {
|
||
ID uint64 `gorm:"type:bigint unsigned;autoIncrement;primaryKey" json:"id"`
|
||
Name string `gorm:"type:varchar(100);uniqueIndex;not null" json:"name"` // e.g., "login", "register", "api"
|
||
Description string `gorm:"type:text" 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"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|