CG-Feedback-Monitor/src/db/queries/consultants.ts

51 lines
2.7 KiB
TypeScript
Raw Normal View History

2026-07-06 19:08:24 +02:00
import { rpc } from '../rpcClient'
import type {
Group, Consultant,
ConsultantImportRow, ConsultantImportResult,
HardDeleteConsultantResult, ConsultantDetail,
} from '../types'
export type {
ConsultantImportRow, ConsultantImportResult,
HardDeleteConsultantResult, ConsultantDetail,
}
2026-07-06 19:08:24 +02:00
export const listGroups = (): Promise<Group[]> => rpc('consultants', 'listGroups')
export const getGroup = (id: number): Promise<Group | undefined> => rpc('consultants', 'getGroup', id)
2026-07-06 19:08:24 +02:00
export const addGroup = (group: Omit<Group, 'id'>): Promise<number> => rpc('consultants', 'addGroup', group)
export const updateGroup = (id: number, patch: Partial<Group>): Promise<number> =>
rpc('consultants', 'updateGroup', id, patch)
export const deleteGroup = (
id: number,
): Promise<{ ok: true } | { ok: false; reason: string; memberCount: number }> =>
rpc('consultants', 'deleteGroup', id)
2026-07-06 19:08:24 +02:00
export const listConsultants = (): Promise<Consultant[]> => rpc('consultants', 'listConsultants')
export const listActiveConsultants = (): Promise<Consultant[]> => rpc('consultants', 'listActiveConsultants')
export const listArchivedConsultants = (): Promise<Consultant[]> => rpc('consultants', 'listArchivedConsultants')
2026-07-06 19:08:24 +02:00
export const getConsultant = (id: number): Promise<Consultant | undefined> => rpc('consultants', 'getConsultant', id)
export const getConsultantsByIds = (ids: number[]): Promise<Consultant[]> =>
rpc('consultants', 'getConsultantsByIds', ids)
export const findConsultantByEmail = (email: string): Promise<Consultant | undefined> =>
rpc('consultants', 'findConsultantByEmail', email)
export const addConsultant = (consultant: Omit<Consultant, 'id'>): Promise<number> =>
rpc('consultants', 'addConsultant', consultant)
export const updateConsultant = (id: number, patch: Partial<Consultant>): Promise<number> =>
rpc('consultants', 'updateConsultant', id, patch)
export const archiveConsultant = (id: number): Promise<number> => rpc('consultants', 'archiveConsultant', id)
export const unarchiveConsultant = (id: number): Promise<number> => rpc('consultants', 'unarchiveConsultant', id)
export const hardDeleteConsultant = (id: number): Promise<HardDeleteConsultantResult> =>
rpc('consultants', 'hardDeleteConsultant', id)
2026-07-06 19:08:24 +02:00
export const deleteConsultant = (id: number): Promise<void> => rpc('consultants', 'deleteConsultant', id)
export const importConsultantsToGroup = (
groupId: number,
rows: ConsultantImportRow[],
moveIfDifferentGroup?: boolean,
): Promise<ConsultantImportResult> =>
rpc('consultants', 'importConsultantsToGroup', groupId, rows, moveIfDifferentGroup)
export const getConsultantDetail = (id: number): Promise<ConsultantDetail | undefined> =>
rpc('consultants', 'getConsultantDetail', id)