diff options
author | 2021-03-05 18:31:12 +0100 | |
---|---|---|
committer | 2021-03-05 18:31:12 +0100 | |
commit | 59963090cbcee395463b7767e3807ce7c0aa6f43 (patch) | |
tree | 7eade814709bb692e24ee6495b201bc1c4b34d6d /internal/model/account.go | |
parent | tidying up here and there (diff) | |
download | gotosocial-59963090cbcee395463b7767e3807ce7c0aa6f43.tar.xz |
create db schemas for accounts
Diffstat (limited to 'internal/model/account.go')
-rw-r--r-- | internal/model/account.go | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/internal/model/account.go b/internal/model/account.go new file mode 100644 index 000000000..55ee62773 --- /dev/null +++ b/internal/model/account.go @@ -0,0 +1,80 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package model + +import ( + "net/url" + "time" +) + +// Account represents a user account +type Account struct { + Avatar + Header + ID int `pg:"type:uuid,default:gen_random_uuid(),pk,notnull"` + Username string + Domain string + Secret string + PrivateKey string + PublicKey string + RemoteURL *url.URL `pg:"type:text"` + SalmonURL *url.URL `pg:"type:text"` + HubURL *url.URL `pg:"type:text"` + CreatedAt time.Time `pg:"type:timestamp,notnull"` + UpdatedAt time.Time `pg:"type:timestamp,notnull"` + Note string + DisplayName string + URI *url.URL `pg:"type:text"` + URL *url.URL `pg:"type:text"` + SubscriptionExpiresAt time.Time `pg:"type:timestamp"` + Locked bool + LastWebfingeredAt time.Time `pg:"type:timestamp"` + InboxURL *url.URL `pg:"type:text"` + OutboxURL *url.URL `pg:"type:text"` + SharedInboxURL *url.URL `pg:"type:text"` + FollowersURL *url.URL `pg:"type:text"` + Protocol int + Memorial bool + MovedToAccountID int + FeaturedCollectionURL *url.URL `pg:"type:text"` + Fields map[string]string + ActorType string + Discoverable bool + AlsoKnownAs string + SilencedAt time.Time `pg:"type:timestamp"` + SuspendedAt time.Time `pg:"type:timestamp"` + TrustLevel int + HideCollections bool + DevicesURL *url.URL `pg:"type:text"` + SensitizedAt time.Time `pg:"type:timestamp"` + SuspensionOrigin int +} + +func StubAccount() *Account { + + remoteURL, _ := url.Parse("https://example.org/@someuser") + + return &Account{ + Username: "some_user", + Domain: "example.org", + RemoteURL: remoteURL, + CreatedAt: time.Now(), + UpdatedAt: time.Now(), + } +} |