> ## Documentation Index
> Fetch the complete documentation index at: https://opensource.weam.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Database Functions

MongoDB repository patterns and data access methods used in the Weam AI Node.js backend for structured data operations.

## Usage Pattern

All repository methods follow consistent patterns:

1. Import the required repository module
2. Call the method with appropriate parameters
3. Handle the returned data

## Repository Modules

### CompanyRepository

#### `fetchCompanyData(companyId)`

Retrieves company metadata from MongoDB using company ID.

**Parameters:**

* `companyId: string` - Unique company identifier

```javascript theme={null}
const CompanyRepository = require('./repositories/CompanyRepository');

const companyData = await CompanyRepository.fetchCompanyData('company123');
console.log(companyData);
```

**Returns:** Company document object with all metadata

### ChatSessionRepository

#### `fetchChatSessionData(sessionId)`

Retrieves chat session data from MongoDB using session ID.

**Parameters:**

* `sessionId: string` - Unique chat session identifier

```javascript theme={null}
const ChatSessionRepository = require('./repositories/ChatSessionRepository');

const sessionData = await ChatSessionRepository.fetchChatSessionData('session456');
console.log(sessionData);
```

**Returns:** Chat session document with messages and metadata

### LLMModelRepository

#### `fetchCompanyModelData(apiKeyId)`

Retrieves LLM configuration data using API key identifier.

**Parameters:**

* `apiKeyId: string` - API key identifier

```javascript theme={null}
const LLMModelRepository = require('./repositories/LLMModelRepository');

const llmConfig = await LLMModelRepository.fetchCompanyModelData('apikey-abc');
console.log(llmConfig);
```

**Returns:** Model configuration including API credentials and settings

### EmbeddingModelRepository

#### `fetchEmbeddingModelData(apiKeyId)`

Fetches embedding model configurations and vector settings.

**Parameters:**

* `apiKeyId: string` - API key identifier

```javascript theme={null}
const EmbeddingModelRepository = require('./repositories/EmbeddingModelRepository');

const embeddingConfig = await EmbeddingModelRepository.fetchEmbeddingModelData('apikey-abc');
console.log(embeddingConfig);
```

**Returns:** Embedding model configuration with dimension and provider details

### FileRepository

#### `fetchFileData(fileId)`

Retrieves file metadata for user or system files.

**Parameters:**

* `fileId: string` - Unique file identifier

```javascript theme={null}
const FileRepository = require('./repositories/FileRepository');

const fileData = await FileRepository.fetchFileData('file-123');
console.log(fileData);
```

**Returns:** File metadata including storage location and processing status

### ChatMemberRepository

#### `fetchChatMemberData(chatSessionId)`

Fetches chat participant data for session management.

**Parameters:**

* `chatSessionId: string` - Chat session identifier

```javascript theme={null}
const ChatMemberRepository = require('./repositories/ChatMemberRepository');

const memberData = await ChatMemberRepository.fetchChatMemberData('chat-789');
console.log(memberData);
```

**Returns:** Array of chat members with roles and permissions

### AgentRepository

#### `fetchAgentData(agentId)`

Retrieves agent configuration including system prompts and settings.

**Parameters:**

* `agentId: string` - Agent identifier

```javascript theme={null}
const AgentRepository = require('./repositories/AgentRepository');

const agentData = await AgentRepository.fetchAgentData('agent-001');
console.log(agentData);
```

**Returns:** Agent configuration with prompts, tools, and metadata

### DocumentRepository

#### `fetchDocumentData(documentId)`

Retrieves document metadata and storage information.

**Parameters:**

* `documentId: string` - Document identifier

```javascript theme={null}
const DocumentRepository = require('./repositories/DocumentRepository');

const documentData = await DocumentRepository.fetchDocumentData('doc-123');
console.log(documentData);
```

**Returns:** Document metadata including chunks and embedding status

### VectorRepository

#### `searchVectors(query, options)`

Performs vector similarity search in Pinecone.

**Parameters:**

* `query: string` - Search query text
* `options: object` - Search configuration

```javascript theme={null}
const VectorRepository = require('./repositories/VectorRepository');

const vectors = await VectorRepository.searchVectors('user query', {
  topK: 5,
  filter: { brainId: 'brain123' }
});
console.log(vectors);
```

**Returns:** Array of relevant document chunks with similarity scores
