gophish/models/models.go

75 lines
1.6 KiB
Go
Raw Normal View History

package models
2014-01-13 03:36:26 +00:00
import (
"net/mail"
// SMTPServer is used to provide a default SMTP server preference.
"time"
)
type SMTPServer struct {
Host string `json:"host"`
User string `json:"user"`
Password string `json:"password"`
}
// Config represents the configuration information.
type Config struct {
URL string `json:"url"`
SMTP SMTPServer `json:"smtp"`
DBPath string `json:"dbpath"`
}
// User represents the user model for gophish.
type User struct {
Id int64 `json:"id"`
2014-01-13 02:00:20 +00:00
Username string `json:"username"`
Hash string `json:"-"`
APIKey string `json:"api_key" db:"api_key"`
}
// Flash is used to hold flash information for use in templates.
type Flash struct {
Type string
Message string
}
2014-01-13 03:36:26 +00:00
//Campaign is a struct representing a created campaign
type Campaign struct {
Id int64 `json:"id"`
Name string `json:"name"`
CreatedDate time.Time `json:"created_date" db:"created_date"`
CompletedDate time.Time `json:"completed_date" db:"completed_date"`
Template string `json:"template"` //This may change
Status string `json:"status"`
Results []Result `json:"results" db:"-"`
Uid int64 `json:"-"`
}
type UserCampaigns struct {
CampaignId int64
UserId int64
}
type Result struct {
Id int64
TargetId int64
Status string `json:"status"`
}
type Group struct {
Id int64 `json:"id"`
Targets []Target
Uid int64
}
type GroupTarget struct {
Gid int64
Tid int64
}
type Target struct {
Id int64 `json:"-"`
Email mail.Address `json:"email"`
2014-01-13 03:36:26 +00:00
}