Changeset 0.19.0.1 (#82)
This commit is contained in:
47
server/store/project_interface.go
Normal file
47
server/store/project_interface.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package store
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"git.gobha.me/xcaliber/chat-switchboard/models"
|
||||
)
|
||||
|
||||
// =========================================
|
||||
// PROJECT STORE (v0.19.0)
|
||||
// =========================================
|
||||
|
||||
type ProjectStore interface {
|
||||
// CRUD
|
||||
Create(ctx context.Context, p *models.Project) error
|
||||
GetByID(ctx context.Context, id string) (*models.Project, error)
|
||||
Update(ctx context.Context, id string, patch models.ProjectPatch) error
|
||||
Delete(ctx context.Context, id string) error
|
||||
|
||||
// Listing
|
||||
ListForUser(ctx context.Context, userID string, teamIDs []string, includeArchived bool) ([]models.Project, error)
|
||||
|
||||
// Channel association (atomic move: removes old project if any)
|
||||
AddChannel(ctx context.Context, projectID, channelID string, position int) error
|
||||
RemoveChannel(ctx context.Context, projectID, channelID string) error
|
||||
ListChannels(ctx context.Context, projectID string) ([]models.ProjectChannel, error)
|
||||
ReorderChannels(ctx context.Context, projectID string, channelIDs []string) error
|
||||
|
||||
// KB association
|
||||
AddKB(ctx context.Context, projectID, kbID string, autoSearch bool) error
|
||||
RemoveKB(ctx context.Context, projectID, kbID string) error
|
||||
ListKBs(ctx context.Context, projectID string) ([]models.ProjectKB, error)
|
||||
|
||||
// Note association
|
||||
AddNote(ctx context.Context, projectID, noteID string) error
|
||||
RemoveNote(ctx context.Context, projectID, noteID string) error
|
||||
ListNotes(ctx context.Context, projectID string) ([]models.ProjectNote, error)
|
||||
|
||||
// Access check
|
||||
UserCanAccess(ctx context.Context, userID, projectID string, teamIDs []string) (bool, error)
|
||||
|
||||
// Get project ID for a channel (used during note auto-association)
|
||||
GetProjectIDForChannel(ctx context.Context, channelID string) (string, error)
|
||||
|
||||
// Get KB IDs bound to a project (used for virtual injection at completion)
|
||||
GetKBIDs(ctx context.Context, projectID string) ([]string, error)
|
||||
}
|
||||
Reference in New Issue
Block a user