package model import ( "golang.org/x/oauth2" "time" ) // GDisk (StorageType) - хранит информацию о пользователе Google и данных необходимых для хранилища. // Пользователь может иметь несколько хранилищ GDisk. // Email - уникальное поле и закрепляется только за одним пользователем type GDisk struct { ID string `bson:"_id,omitempty" json:"id"` UserID string `bson:"user_id" json:"user_id"` Email string `bson:"email" json:"email"` // Google email. Unique ? DisplayName string `bson:"display_name" json:"display_name"` // Отображаемое имя пользователя в Google PhotoLink string `bson:"photo_link" json:"photo_link"` // Фото пользователя в Google AccessToken string `bson:"access_token" json:"-"` RefreshToken string `bson:"refresh_token" json:"-"` ExpiresIn time.Time `bson:"expires_in" json:"-"` TokenType string `bson:"token_type" json:"-"` Name string `bson:"name" json:"name"` // Пользовательское название хранилища DefaultFolder string `bson:"default_folder" json:"default_folder"` DefaultFolderID string `bson:"default_folder_id" json:"default_folder_id"` TemplateFolder string `bson:"template_folder" json:"template_folder"` TemplateFolderID string `bson:"template_folder_id" json:"template_folder_id"` SaveFolder string `bson:"save_folder" json:"save_folder"` SaveFolderID string `bson:"save_folder_id" json:"save_folder_id"` IsDeleted bool `bson:"is_deleted" json:"is_deleted"` CreatedAt time.Time `bson:"created_at" json:"created_at"` UpdatedAt time.Time `bson:"updated_at" json:"updated_at"` } func (m *GDisk) Token() *oauth2.Token { token := &oauth2.Token{ AccessToken: m.AccessToken, TokenType: m.TokenType, RefreshToken: m.RefreshToken, Expiry: m.ExpiresIn, } return token }