Api
Pinia Stores
Referência das Pinia stores do frontend stCall.
Pinia Stores
O frontend utiliza 7 Pinia stores para gerenciamento de estado global.
authStore
Arquivo: stores/authStore.ts
Gerencia autenticação e dados do usuário logado.
Estado
| Propriedade | Tipo | Descrição |
|---|---|---|
user | User | null | Dados do usuário |
isAuthenticated | boolean | Status de autenticação |
token | string | null | Token JWT |
lastError | string | null | Último erro |
isHydrating | boolean | Se está restaurando sessão |
Getters
| Getter | Retorno | Descrição |
|---|---|---|
isAdmin | boolean | É admin ou supervisor |
isAgent | boolean | É agente |
userName | string | Nome ou "Guest" |
Actions
| Action | Parâmetros | Descrição |
|---|---|---|
login | email, password | Faz login e conecta WS |
logout | - | Desconecta e limpa dados |
restoreSession | - | Restaura sessão do localStorage |
callStore
Arquivo: stores/callStore.ts
Gerencia chamada ativa, histórico e discagem.
Estado
| Propriedade | Tipo | Descrição |
|---|---|---|
activeCall | Call | null | Chamada ativa |
callHistory | CallHistory[] | Histórico |
isDialing | boolean | Discando |
incomingCall | Call | null | Chamada entrante |
isLoadingHistory | boolean | Carregando histórico |
Getters
| Getter | Retorno | Descrição |
|---|---|---|
hasActiveCall | boolean | Tem chamada ativa |
hasIncomingCall | boolean | Tem chamada entrante |
callStatusText | string | Texto do status |
todaysCalls | number | Chamadas hoje |
totalCompletedCalls | number | Total completadas |
totalMissedCalls | number | Total perdidas |
totalCallTime | number | Tempo total (seg) |
averageCallDuration | number | Duração média (seg) |
recentCalls | CallHistory[] | Últimas 10 |
asteriskStore
Arquivo: stores/asteriskStore.ts
Gerencia conexão WebSocket com stcall-ws.
Estado
| Propriedade | Tipo | Descrição |
|---|---|---|
isConnected | boolean | WebSocket conectado |
webrtcRegistered | boolean | WebRTC registrado |
webrtcExtension | string | null | Ramal WebRTC |
events | Array | Últimos eventos ARI |
Actions
| Action | Parâmetros | Descrição |
|---|---|---|
connect | token | Conecta ao stcall-ws |
disconnect | - | Desconecta |
setWebRTCRegistered | extension | Marca WebRTC registrado |
handleAsteriskEvent | event | Processa evento ARI |
agentStore
Arquivo: stores/agentStore.ts
Gerencia lista de agentes e seus status.
Estado
| Propriedade | Tipo | Descrição |
|---|---|---|
agents | Agent[] | Lista de agentes |
isLoading | boolean | Carregando dados |
Actions
| Action | Parâmetros | Descrição |
|---|---|---|
fetchAgents | - | Buscar lista de agentes |
createAgent | data | Criar novo agente |
updateAgent | id, data | Atualizar agente |
deleteAgent | id | Remover agente |
uiStore
Arquivo: stores/uiStore.ts
Gerencia preferências de interface (persistidas no localStorage).
Estado
| Propriedade | Tipo | Descrição |
|---|---|---|
isDarkMode | boolean | Modo escuro ativo |
isCompactMode | boolean | Modo compacto |
callNotifications | boolean | Notif. de chamada |
soundNotifications | boolean | Notif. sonora |
systemAlerts | boolean | Alertas do sistema |
releaseNotes | boolean | Notas de versão |
audioStore
Arquivo: stores/audioStore.ts
Gerencia configurações de dispositivos de áudio.
Estado
| Propriedade | Tipo | Descrição |
|---|---|---|
inputDevice | string | ID do microfone |
outputDevice | string | ID do alto-falante |
inputVolume | number | Volume do mic (0-100) |
outputVolume | number | Volume de saída (0-100) |
noiseCancellation | boolean | Cancelamento de ruído |
ringtone | string | Toque selecionado |
ringtoneVolume | number | Volume do toque (0-100) |
dialerStore
Arquivo: stores/dialerStore.ts
Gerencia estado do discador.
Estado
| Propriedade | Tipo | Descrição |
|---|---|---|
phoneNumber | string | Número digitado |
isValid | boolean | Número válido (8+ dígitos) |
Uso
// Em um componente ou composable
const authStore = useAuthStore()
const callStore = useCallStore()
// Getters
const isAdmin = authStore.isAdmin
const hasCalls = callStore.hasActiveCall
// Actions
await authStore.login('email', 'senha')