From 59963090cbcee395463b7767e3807ce7c0aa6f43 Mon Sep 17 00:00:00 2001 From: tsmethurst Date: Fri, 5 Mar 2021 18:31:12 +0100 Subject: create db schemas for accounts --- internal/model/account.go | 80 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 internal/model/account.go (limited to 'internal/model/account.go') 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 . +*/ + +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(), + } +} -- cgit v1.2.3