sum7/warehost
sum7
/
warehost
Archived
1
0
Fork 0
This repository has been archived on 2020-09-27. You can view files and clone it, but cannot push or open issues or pull requests.
warehost/modul/host/models.go

75 lines
2.9 KiB
Go
Raw Normal View History

2016-09-01 22:19:39 +02:00
package host
import (
"github.com/jinzhu/gorm"
)
2016-09-02 21:32:56 +02:00
// Profil struct
type Profil struct {
ID int64
2016-10-16 19:00:53 +02:00
LoginID int64 `sql:"type:bigint NOT NULL UNIQUE REFERENCES login(id) ON UPDATE CASCADE ON DELETE CASCADE;column:login" json:"login"`
2016-09-02 21:32:56 +02:00
Reseller bool `sql:"default:false;column:reseller" json:"reseller"`
}
// TableName of struct
func (Profil) TableName() string { return "host_profil" }
// Domain struct
type Domain struct {
ID int64
ProfilID int64 `sql:"type:bigint NOT NULL REFERENCES host_profil(id) ON UPDATE CASCADE ON DELETE CASCADE;column:profil" json:"profil"`
FQDN string `sql:"type:varchar(255) NOT NULL UNIQUE;column:fqdn" json:"fqdn"`
2016-10-17 11:54:35 +02:00
Code string `sql:"type:varchar(255);column:code" json:"-"`
2016-09-02 21:32:56 +02:00
Active bool `sql:"default:false;column:active" json:"active"`
Mail bool `sql:"default:false;column:mail" json:"mail"`
Web bool `sql:"default:false;column:web" json:"web"`
}
// TableName of struct
func (Domain) TableName() string { return "host_domain" }
// Web struct
type Web struct {
ID int64
DomainID int64 `sql:"type:bigint NOT NULL REFERENCES host_domain(id) ON UPDATE CASCADE ON DELETE CASCADE;column:domain" json:"domain"`
Subdomain string `sql:"type:varchar(255);column:subdomain" json:"subdomain"`
PHP bool `sql:"default:false;column:php" json:"php"`
SSL bool `sql:"default:true;column:ssl" json:"ssl"`
SSLRedirect bool `sql:"default:false;column:sslredirect" json:"sslredirect"`
Redirect string `sql:"type:varchar(255);column:redirect" json:"redirect"`
Proxy string `sql:"type:varchar(255);column:proxy" json:"proxy"`
FTP []int64 `sql:"type:bigint[];column:ftp" json:"ftp"`
HTTPAccess []int64 `sql:"type:bigint[];column:httpaccess" json:"httpaccess"`
}
// TableName of struct
func (Web) TableName() string { return "host_web" }
// Mail struct
type Mail struct {
ID int64
DomainID int64 `sql:"type:bigint NOT NULL REFERENCES host_domain(id) ON UPDATE CASCADE ON DELETE CASCADE;column:domain" json:"domain"`
Name string `sql:"type:varchar(255);column:name" json:"name"`
Forward string `sql:"type:varchar(255)[];column:forward" json:"forward"`
LoginID int64 `sql:"type:bigint NOT NULL REFERENCES login(id) ON UPDATE CASCADE ON DELETE CASCADE;column:login" json:"login"`
}
// TableName of struct
func (Mail) TableName() string { return "host_mail" }
// Database struct
type Database struct {
ID int64
ProfilID int64 `sql:"type:bigint NOT NULL REFERENCES host_profil(id) ON UPDATE CASCADE ON DELETE CASCADE;column:profil" json:"profil"`
Password string `sql:"type:varchar(255);column:password" json:"password"`
Comment string `sql:"type:varchar(255);column:comment" json:"comment"`
}
// TableName of struct
func (Database) TableName() string { return "host_database" }
2016-09-01 22:19:39 +02:00
// SyncModels to verify the database schema
func SyncModels(dbconnection *gorm.DB) {
2016-09-02 21:32:56 +02:00
dbconnection.AutoMigrate(&Profil{}, &Domain{}, &Web{}, &Mail{}, &Database{})
2016-09-01 22:19:39 +02:00
}