package repository import ( "context" "rag/file-system/internal/domain/model" ) type FolderRepository interface { Create(ctx context.Context, folder *model.Folder) error GetByID(ctx context.Context, id string) (*model.Folder, error) GetWithChildren(ctx context.Context, id string, ownerID string) (*model.FolderWithChildren, error) GetTree(ctx context.Context, ownerID string) ([]model.Folder, error) Update(ctx context.Context, folder *model.Folder) error Delete(ctx context.Context, id string, ownerID string) error GetDescendantFileS3Keys(ctx context.Context, id string, ownerID string) ([]model.FileMeta, error) }