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>
51 lines
2.7 KiB
TypeScript
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)
|