33 lines
1.2 KiB
Go
33 lines
1.2 KiB
Go
|
// Copyright (C) 2023 Storj Labs, Inc.
|
||
|
// See LICENSE for copying information.
|
||
|
|
||
|
package console
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"time"
|
||
|
|
||
|
"storj.io/common/uuid"
|
||
|
)
|
||
|
|
||
|
// ProjectInvitations exposes methods to manage pending project member invitations in the database.
|
||
|
//
|
||
|
// architecture: Database
|
||
|
type ProjectInvitations interface {
|
||
|
// Insert is a method for inserting a project member invitation into the database.
|
||
|
Insert(ctx context.Context, projectID uuid.UUID, email string) (*ProjectInvitation, error)
|
||
|
// GetByProjectID returns all of the project member invitations for the project specified by the given ID.
|
||
|
GetByProjectID(ctx context.Context, projectID uuid.UUID) ([]ProjectInvitation, error)
|
||
|
// GetByEmail returns all of the project member invitations for the specified email address.
|
||
|
GetByEmail(ctx context.Context, email string) ([]ProjectInvitation, error)
|
||
|
// Delete is a method for deleting a project member invitation from the database.
|
||
|
Delete(ctx context.Context, projectID uuid.UUID, email string) error
|
||
|
}
|
||
|
|
||
|
// ProjectInvitation represents a pending project member invitation.
|
||
|
type ProjectInvitation struct {
|
||
|
ProjectID uuid.UUID
|
||
|
Email string
|
||
|
CreatedAt time.Time
|
||
|
}
|