mirror of
https://github.com/phishingclub/phishingclub.git
synced 2026-10-03 05:56:52 +02:00
36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package database
|
|
|
|
import (
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
const (
|
|
CAMPAIGN_SCRIPT_TABLE = "campaign_scripts"
|
|
)
|
|
|
|
// CampaignScript is a gorm data model.
|
|
// It is a junction table for the campaign to script many to many relationship
|
|
// and stores the per script configuration (events and data level).
|
|
// It mirrors CampaignWebhook so scripts are configured on a campaign the
|
|
// same way webhooks are.
|
|
type CampaignScript struct {
|
|
CampaignID *uuid.UUID `gorm:"not null;index;type:uuid;uniqueIndex:idx_campaign_script;primaryKey;"`
|
|
Campaign *Campaign
|
|
|
|
ScriptID *uuid.UUID `gorm:"not null;index;type:uuid;uniqueIndex:idx_campaign_script;primaryKey;"`
|
|
Script *Script
|
|
|
|
// scriptincludedata is the data level handed to the script.
|
|
// values: "none", "basic", "full"
|
|
ScriptIncludeData string `gorm:"not null;default:'full'"`
|
|
|
|
// scriptevents is a binary format storing selected events as bits.
|
|
// 0 = all events (default). Uses the same bit map as webhooks
|
|
// (data.WebhookEventToBit) so the two features subscribe identically.
|
|
ScriptEvents int `gorm:"not null;default:0"`
|
|
}
|
|
|
|
func (CampaignScript) TableName() string {
|
|
return CAMPAIGN_SCRIPT_TABLE
|
|
}
|