CG-Feedback-Monitor/src/db/queries/consultants.ts
Lars d894c3c8e4 V2-Stand: UX-Dashboard, Personen v2, Starter-Paket und Dexie-Legacy entfernt.
Sichert den lokalen Entwicklungsstand nach Gitea: Nav/Dashboard, Personen-Excel/Archiv, Team-Setup, Assignment-Übergabe und C6/C7/T2.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 14:17:25 +02:00

51 lines
2.7 KiB
TypeScript

import { rpc } from '../rpcClient'
import type {
Group, Consultant,
ConsultantImportRow, ConsultantImportResult,
HardDeleteConsultantResult, ConsultantDetail,
} from '../types'
export type {
ConsultantImportRow, ConsultantImportResult,
HardDeleteConsultantResult, ConsultantDetail,
}
export const listGroups = (): Promise<Group[]> => rpc('consultants', 'listGroups')
export const getGroup = (id: number): Promise<Group | undefined> => rpc('consultants', 'getGroup', id)
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)
export const listConsultants = (): Promise<Consultant[]> => rpc('consultants', 'listConsultants')
export const listActiveConsultants = (): Promise<Consultant[]> => rpc('consultants', 'listActiveConsultants')
export const listArchivedConsultants = (): Promise<Consultant[]> => rpc('consultants', 'listArchivedConsultants')
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)
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)