2023-03-01 11:06:58 +01:00

40 lines
1.5 KiB
Go

// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License.AGPL.txt in the project root for license information.
package db
import (
"database/sql"
"time"
"github.com/google/uuid"
"gorm.io/datatypes"
)
type Project struct {
ID uuid.UUID `gorm:"primary_key;column:id;type:char;size:36;" json:"id"`
Name string `gorm:"column:name;type:varchar;size:255;" json:"name"`
CloneURL string `gorm:"column:cloneUrl;type:varchar;size:255;" json:"cloneUrl"`
Slug sql.NullString `gorm:"column:slug;type:varchar;size:255;" json:"slug"`
Settings datatypes.JSON `gorm:"column:settings;type:text;size:65535;" json:"settings"`
AppInstallationID string `gorm:"column:appInstallationId;type:varchar;size:255;" json:"appInstallationId"`
CreationTime VarcharTime `gorm:"column:creationTime;type:varchar;size:255;" json:"creationTime"`
LastModified time.Time `gorm:"column:_lastModified;type:timestamp;default:CURRENT_TIMESTAMP(6);" json:"_lastModified"`
TeamID sql.NullString `gorm:"column:teamId;type:char;size:36;" json:"teamId"`
UserID sql.NullString `gorm:"column:userId;type:char;size:36;" json:"userId"`
MarkedDeleted bool `gorm:"column:markedDeleted;type:tinyint;default:0;" json:"markedDeleted"`
// deleted is reserved for use by periodic deleter
_ bool `gorm:"column:deleted;type:tinyint;default:0;" json:"deleted"`
}
// TableName sets the insert table name for this struct type
func (d *Project) TableName() string {
return "d_b_project"
}