/** * Generated by orval v8.9.1 🍺 * Do not edit manually. * Api * Design Studio OS API * OpenAPI spec version: 0.1.0 */ import { useMutation, useQuery } from '@tanstack/react-query'; import type { MutationFunction, QueryFunction, QueryKey, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from '@tanstack/react-query'; import type { ActivityItem, Brief, Client, CreateBriefBody, CreateClientBody, CreateProjectBody, CreateTaskBody, CreateTimeEntryBody, DashboardStats, GetRecentActivityParams, HealthStatus, ListProjectsParams, ListTasksParams, ListTimeEntriesParams, Project, Task, TimeEntry, UpdateBriefBody, UpdateClientBody, UpdateProjectBody, UpdateTaskBody } from './api.schemas'; import { customFetch } from '../custom-fetch'; import type { ErrorType , BodyType } from '../custom-fetch'; type AwaitedInput = PromiseLike | T; type Awaited = O extends AwaitedInput ? T : never; type SecondParameter unknown> = Parameters[1]; export const getHealthCheckUrl = () => { return `/api/healthz` } /** * @summary Health check */ export const healthCheck = async ( options?: RequestInit): Promise => { return customFetch(getHealthCheckUrl(), { ...options, method: 'GET' } );} export const getHealthCheckQueryKey = () => { return [ `/api/healthz` ] as const; } export const getHealthCheckQueryOptions = >, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getHealthCheckQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => healthCheck({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type HealthCheckQueryResult = NonNullable>> export type HealthCheckQueryError = ErrorType /** * @summary Health check */ export function useHealthCheck>, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getHealthCheckQueryOptions(options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getListProjectsUrl = (params?: ListProjectsParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/projects?${stringifiedParams}` : `/api/projects` } /** * @summary List all projects */ export const listProjects = async (params?: ListProjectsParams, options?: RequestInit): Promise => { return customFetch(getListProjectsUrl(params), { ...options, method: 'GET' } );} export const getListProjectsQueryKey = (params?: ListProjectsParams,) => { return [ `/api/projects`, ...(params ? [params] : []) ] as const; } export const getListProjectsQueryOptions = >, TError = ErrorType>(params?: ListProjectsParams, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListProjectsQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => listProjects(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type ListProjectsQueryResult = NonNullable>> export type ListProjectsQueryError = ErrorType /** * @summary List all projects */ export function useListProjects>, TError = ErrorType>( params?: ListProjectsParams, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListProjectsQueryOptions(params,options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getCreateProjectUrl = () => { return `/api/projects` } /** * @summary Create a new project */ export const createProject = async (createProjectBody: CreateProjectBody, options?: RequestInit): Promise => { return customFetch(getCreateProjectUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( createProjectBody,) } );} export const getCreateProjectMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: BodyType}, TContext> => { const mutationKey = ['createProject']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {data: BodyType}> = (props) => { const {data} = props ?? {}; return createProject(data,requestOptions) } return { mutationFn, ...mutationOptions }} export type CreateProjectMutationResult = NonNullable>> export type CreateProjectMutationBody = BodyType export type CreateProjectMutationError = ErrorType /** * @summary Create a new project */ export const useCreateProject = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {data: BodyType}, TContext > => { return useMutation(getCreateProjectMutationOptions(options)); } export const getGetProjectUrl = (id: number,) => { return `/api/projects/${id}` } /** * @summary Get a project by ID */ export const getProject = async (id: number, options?: RequestInit): Promise => { return customFetch(getGetProjectUrl(id), { ...options, method: 'GET' } );} export const getGetProjectQueryKey = (id: number,) => { return [ `/api/projects/${id}` ] as const; } export const getGetProjectQueryOptions = >, TError = ErrorType>(id: number, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetProjectQueryKey(id); const queryFn: QueryFunction>> = ({ signal }) => getProject(id, { signal, ...requestOptions }); return { queryKey, queryFn, enabled: !!(id), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type GetProjectQueryResult = NonNullable>> export type GetProjectQueryError = ErrorType /** * @summary Get a project by ID */ export function useGetProject>, TError = ErrorType>( id: number, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetProjectQueryOptions(id,options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getUpdateProjectUrl = (id: number,) => { return `/api/projects/${id}` } /** * @summary Update a project */ export const updateProject = async (id: number, updateProjectBody: UpdateProjectBody, options?: RequestInit): Promise => { return customFetch(getUpdateProjectUrl(id), { ...options, method: 'PATCH', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( updateProjectBody,) } );} export const getUpdateProjectMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number;data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number;data: BodyType}, TContext> => { const mutationKey = ['updateProject']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {id: number;data: BodyType}> = (props) => { const {id,data} = props ?? {}; return updateProject(id,data,requestOptions) } return { mutationFn, ...mutationOptions }} export type UpdateProjectMutationResult = NonNullable>> export type UpdateProjectMutationBody = BodyType export type UpdateProjectMutationError = ErrorType /** * @summary Update a project */ export const useUpdateProject = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number;data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {id: number;data: BodyType}, TContext > => { return useMutation(getUpdateProjectMutationOptions(options)); } export const getDeleteProjectUrl = (id: number,) => { return `/api/projects/${id}` } /** * @summary Delete a project */ export const deleteProject = async (id: number, options?: RequestInit): Promise => { return customFetch(getDeleteProjectUrl(id), { ...options, method: 'DELETE' } );} export const getDeleteProjectMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number}, TContext> => { const mutationKey = ['deleteProject']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {id: number}> = (props) => { const {id} = props ?? {}; return deleteProject(id,requestOptions) } return { mutationFn, ...mutationOptions }} export type DeleteProjectMutationResult = NonNullable>> export type DeleteProjectMutationError = ErrorType /** * @summary Delete a project */ export const useDeleteProject = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {id: number}, TContext > => { return useMutation(getDeleteProjectMutationOptions(options)); } export const getListClientsUrl = () => { return `/api/clients` } /** * @summary List all clients */ export const listClients = async ( options?: RequestInit): Promise => { return customFetch(getListClientsUrl(), { ...options, method: 'GET' } );} export const getListClientsQueryKey = () => { return [ `/api/clients` ] as const; } export const getListClientsQueryOptions = >, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListClientsQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => listClients({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type ListClientsQueryResult = NonNullable>> export type ListClientsQueryError = ErrorType /** * @summary List all clients */ export function useListClients>, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListClientsQueryOptions(options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getCreateClientUrl = () => { return `/api/clients` } /** * @summary Create a client */ export const createClient = async (createClientBody: CreateClientBody, options?: RequestInit): Promise => { return customFetch(getCreateClientUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( createClientBody,) } );} export const getCreateClientMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: BodyType}, TContext> => { const mutationKey = ['createClient']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {data: BodyType}> = (props) => { const {data} = props ?? {}; return createClient(data,requestOptions) } return { mutationFn, ...mutationOptions }} export type CreateClientMutationResult = NonNullable>> export type CreateClientMutationBody = BodyType export type CreateClientMutationError = ErrorType /** * @summary Create a client */ export const useCreateClient = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {data: BodyType}, TContext > => { return useMutation(getCreateClientMutationOptions(options)); } export const getGetClientUrl = (id: number,) => { return `/api/clients/${id}` } /** * @summary Get a client by ID */ export const getClient = async (id: number, options?: RequestInit): Promise => { return customFetch(getGetClientUrl(id), { ...options, method: 'GET' } );} export const getGetClientQueryKey = (id: number,) => { return [ `/api/clients/${id}` ] as const; } export const getGetClientQueryOptions = >, TError = ErrorType>(id: number, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetClientQueryKey(id); const queryFn: QueryFunction>> = ({ signal }) => getClient(id, { signal, ...requestOptions }); return { queryKey, queryFn, enabled: !!(id), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type GetClientQueryResult = NonNullable>> export type GetClientQueryError = ErrorType /** * @summary Get a client by ID */ export function useGetClient>, TError = ErrorType>( id: number, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetClientQueryOptions(id,options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getUpdateClientUrl = (id: number,) => { return `/api/clients/${id}` } /** * @summary Update a client */ export const updateClient = async (id: number, updateClientBody: UpdateClientBody, options?: RequestInit): Promise => { return customFetch(getUpdateClientUrl(id), { ...options, method: 'PATCH', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( updateClientBody,) } );} export const getUpdateClientMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number;data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number;data: BodyType}, TContext> => { const mutationKey = ['updateClient']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {id: number;data: BodyType}> = (props) => { const {id,data} = props ?? {}; return updateClient(id,data,requestOptions) } return { mutationFn, ...mutationOptions }} export type UpdateClientMutationResult = NonNullable>> export type UpdateClientMutationBody = BodyType export type UpdateClientMutationError = ErrorType /** * @summary Update a client */ export const useUpdateClient = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number;data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {id: number;data: BodyType}, TContext > => { return useMutation(getUpdateClientMutationOptions(options)); } export const getDeleteClientUrl = (id: number,) => { return `/api/clients/${id}` } /** * @summary Delete a client */ export const deleteClient = async (id: number, options?: RequestInit): Promise => { return customFetch(getDeleteClientUrl(id), { ...options, method: 'DELETE' } );} export const getDeleteClientMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number}, TContext> => { const mutationKey = ['deleteClient']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {id: number}> = (props) => { const {id} = props ?? {}; return deleteClient(id,requestOptions) } return { mutationFn, ...mutationOptions }} export type DeleteClientMutationResult = NonNullable>> export type DeleteClientMutationError = ErrorType /** * @summary Delete a client */ export const useDeleteClient = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {id: number}, TContext > => { return useMutation(getDeleteClientMutationOptions(options)); } export const getListTasksUrl = (params?: ListTasksParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/tasks?${stringifiedParams}` : `/api/tasks` } /** * @summary List tasks */ export const listTasks = async (params?: ListTasksParams, options?: RequestInit): Promise => { return customFetch(getListTasksUrl(params), { ...options, method: 'GET' } );} export const getListTasksQueryKey = (params?: ListTasksParams,) => { return [ `/api/tasks`, ...(params ? [params] : []) ] as const; } export const getListTasksQueryOptions = >, TError = ErrorType>(params?: ListTasksParams, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListTasksQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => listTasks(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type ListTasksQueryResult = NonNullable>> export type ListTasksQueryError = ErrorType /** * @summary List tasks */ export function useListTasks>, TError = ErrorType>( params?: ListTasksParams, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListTasksQueryOptions(params,options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getCreateTaskUrl = () => { return `/api/tasks` } /** * @summary Create a task */ export const createTask = async (createTaskBody: CreateTaskBody, options?: RequestInit): Promise => { return customFetch(getCreateTaskUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( createTaskBody,) } );} export const getCreateTaskMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: BodyType}, TContext> => { const mutationKey = ['createTask']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {data: BodyType}> = (props) => { const {data} = props ?? {}; return createTask(data,requestOptions) } return { mutationFn, ...mutationOptions }} export type CreateTaskMutationResult = NonNullable>> export type CreateTaskMutationBody = BodyType export type CreateTaskMutationError = ErrorType /** * @summary Create a task */ export const useCreateTask = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {data: BodyType}, TContext > => { return useMutation(getCreateTaskMutationOptions(options)); } export const getUpdateTaskUrl = (id: number,) => { return `/api/tasks/${id}` } /** * @summary Update a task */ export const updateTask = async (id: number, updateTaskBody: UpdateTaskBody, options?: RequestInit): Promise => { return customFetch(getUpdateTaskUrl(id), { ...options, method: 'PATCH', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( updateTaskBody,) } );} export const getUpdateTaskMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number;data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number;data: BodyType}, TContext> => { const mutationKey = ['updateTask']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {id: number;data: BodyType}> = (props) => { const {id,data} = props ?? {}; return updateTask(id,data,requestOptions) } return { mutationFn, ...mutationOptions }} export type UpdateTaskMutationResult = NonNullable>> export type UpdateTaskMutationBody = BodyType export type UpdateTaskMutationError = ErrorType /** * @summary Update a task */ export const useUpdateTask = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number;data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {id: number;data: BodyType}, TContext > => { return useMutation(getUpdateTaskMutationOptions(options)); } export const getDeleteTaskUrl = (id: number,) => { return `/api/tasks/${id}` } /** * @summary Delete a task */ export const deleteTask = async (id: number, options?: RequestInit): Promise => { return customFetch(getDeleteTaskUrl(id), { ...options, method: 'DELETE' } );} export const getDeleteTaskMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number}, TContext> => { const mutationKey = ['deleteTask']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {id: number}> = (props) => { const {id} = props ?? {}; return deleteTask(id,requestOptions) } return { mutationFn, ...mutationOptions }} export type DeleteTaskMutationResult = NonNullable>> export type DeleteTaskMutationError = ErrorType /** * @summary Delete a task */ export const useDeleteTask = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {id: number}, TContext > => { return useMutation(getDeleteTaskMutationOptions(options)); } export const getListTimeEntriesUrl = (params?: ListTimeEntriesParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/time-entries?${stringifiedParams}` : `/api/time-entries` } /** * @summary List time entries */ export const listTimeEntries = async (params?: ListTimeEntriesParams, options?: RequestInit): Promise => { return customFetch(getListTimeEntriesUrl(params), { ...options, method: 'GET' } );} export const getListTimeEntriesQueryKey = (params?: ListTimeEntriesParams,) => { return [ `/api/time-entries`, ...(params ? [params] : []) ] as const; } export const getListTimeEntriesQueryOptions = >, TError = ErrorType>(params?: ListTimeEntriesParams, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListTimeEntriesQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => listTimeEntries(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type ListTimeEntriesQueryResult = NonNullable>> export type ListTimeEntriesQueryError = ErrorType /** * @summary List time entries */ export function useListTimeEntries>, TError = ErrorType>( params?: ListTimeEntriesParams, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListTimeEntriesQueryOptions(params,options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getCreateTimeEntryUrl = () => { return `/api/time-entries` } /** * @summary Log time entry */ export const createTimeEntry = async (createTimeEntryBody: CreateTimeEntryBody, options?: RequestInit): Promise => { return customFetch(getCreateTimeEntryUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( createTimeEntryBody,) } );} export const getCreateTimeEntryMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: BodyType}, TContext> => { const mutationKey = ['createTimeEntry']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {data: BodyType}> = (props) => { const {data} = props ?? {}; return createTimeEntry(data,requestOptions) } return { mutationFn, ...mutationOptions }} export type CreateTimeEntryMutationResult = NonNullable>> export type CreateTimeEntryMutationBody = BodyType export type CreateTimeEntryMutationError = ErrorType /** * @summary Log time entry */ export const useCreateTimeEntry = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {data: BodyType}, TContext > => { return useMutation(getCreateTimeEntryMutationOptions(options)); } export const getDeleteTimeEntryUrl = (id: number,) => { return `/api/time-entries/${id}` } /** * @summary Delete a time entry */ export const deleteTimeEntry = async (id: number, options?: RequestInit): Promise => { return customFetch(getDeleteTimeEntryUrl(id), { ...options, method: 'DELETE' } );} export const getDeleteTimeEntryMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number}, TContext> => { const mutationKey = ['deleteTimeEntry']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {id: number}> = (props) => { const {id} = props ?? {}; return deleteTimeEntry(id,requestOptions) } return { mutationFn, ...mutationOptions }} export type DeleteTimeEntryMutationResult = NonNullable>> export type DeleteTimeEntryMutationError = ErrorType /** * @summary Delete a time entry */ export const useDeleteTimeEntry = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {id: number}, TContext > => { return useMutation(getDeleteTimeEntryMutationOptions(options)); } export const getListBriefsUrl = () => { return `/api/briefs` } /** * @summary List brief templates */ export const listBriefs = async ( options?: RequestInit): Promise => { return customFetch(getListBriefsUrl(), { ...options, method: 'GET' } );} export const getListBriefsQueryKey = () => { return [ `/api/briefs` ] as const; } export const getListBriefsQueryOptions = >, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListBriefsQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => listBriefs({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type ListBriefsQueryResult = NonNullable>> export type ListBriefsQueryError = ErrorType /** * @summary List brief templates */ export function useListBriefs>, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getListBriefsQueryOptions(options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getCreateBriefUrl = () => { return `/api/briefs` } /** * @summary Create a brief template */ export const createBrief = async (createBriefBody: CreateBriefBody, options?: RequestInit): Promise => { return customFetch(getCreateBriefUrl(), { ...options, method: 'POST', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( createBriefBody,) } );} export const getCreateBriefMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{data: BodyType}, TContext> => { const mutationKey = ['createBrief']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {data: BodyType}> = (props) => { const {data} = props ?? {}; return createBrief(data,requestOptions) } return { mutationFn, ...mutationOptions }} export type CreateBriefMutationResult = NonNullable>> export type CreateBriefMutationBody = BodyType export type CreateBriefMutationError = ErrorType /** * @summary Create a brief template */ export const useCreateBrief = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {data: BodyType}, TContext > => { return useMutation(getCreateBriefMutationOptions(options)); } export const getUpdateBriefUrl = (id: number,) => { return `/api/briefs/${id}` } /** * @summary Update a brief */ export const updateBrief = async (id: number, updateBriefBody: UpdateBriefBody, options?: RequestInit): Promise => { return customFetch(getUpdateBriefUrl(id), { ...options, method: 'PATCH', headers: { 'Content-Type': 'application/json', ...options?.headers }, body: JSON.stringify( updateBriefBody,) } );} export const getUpdateBriefMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number;data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number;data: BodyType}, TContext> => { const mutationKey = ['updateBrief']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {id: number;data: BodyType}> = (props) => { const {id,data} = props ?? {}; return updateBrief(id,data,requestOptions) } return { mutationFn, ...mutationOptions }} export type UpdateBriefMutationResult = NonNullable>> export type UpdateBriefMutationBody = BodyType export type UpdateBriefMutationError = ErrorType /** * @summary Update a brief */ export const useUpdateBrief = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number;data: BodyType}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {id: number;data: BodyType}, TContext > => { return useMutation(getUpdateBriefMutationOptions(options)); } export const getDeleteBriefUrl = (id: number,) => { return `/api/briefs/${id}` } /** * @summary Delete a brief */ export const deleteBrief = async (id: number, options?: RequestInit): Promise => { return customFetch(getDeleteBriefUrl(id), { ...options, method: 'DELETE' } );} export const getDeleteBriefMutationOptions = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationOptions>, TError,{id: number}, TContext> => { const mutationKey = ['deleteBrief']; const {mutation: mutationOptions, request: requestOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }, request: undefined}; const mutationFn: MutationFunction>, {id: number}> = (props) => { const {id} = props ?? {}; return deleteBrief(id,requestOptions) } return { mutationFn, ...mutationOptions }} export type DeleteBriefMutationResult = NonNullable>> export type DeleteBriefMutationError = ErrorType /** * @summary Delete a brief */ export const useDeleteBrief = , TContext = unknown>(options?: { mutation?:UseMutationOptions>, TError,{id: number}, TContext>, request?: SecondParameter} ): UseMutationResult< Awaited>, TError, {id: number}, TContext > => { return useMutation(getDeleteBriefMutationOptions(options)); } export const getGetDashboardStatsUrl = () => { return `/api/dashboard/stats` } /** * @summary Get dashboard statistics */ export const getDashboardStats = async ( options?: RequestInit): Promise => { return customFetch(getGetDashboardStatsUrl(), { ...options, method: 'GET' } );} export const getGetDashboardStatsQueryKey = () => { return [ `/api/dashboard/stats` ] as const; } export const getGetDashboardStatsQueryOptions = >, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetDashboardStatsQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getDashboardStats({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type GetDashboardStatsQueryResult = NonNullable>> export type GetDashboardStatsQueryError = ErrorType /** * @summary Get dashboard statistics */ export function useGetDashboardStats>, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetDashboardStatsQueryOptions(options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getGetRecentActivityUrl = (params?: GetRecentActivityParams,) => { const normalizedParams = new URLSearchParams(); Object.entries(params || {}).forEach(([key, value]) => { if (value !== undefined) { normalizedParams.append(key, value === null ? 'null' : value.toString()) } }); const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 ? `/api/dashboard/activity?${stringifiedParams}` : `/api/dashboard/activity` } /** * @summary Get recent activity feed */ export const getRecentActivity = async (params?: GetRecentActivityParams, options?: RequestInit): Promise => { return customFetch(getGetRecentActivityUrl(params), { ...options, method: 'GET' } );} export const getGetRecentActivityQueryKey = (params?: GetRecentActivityParams,) => { return [ `/api/dashboard/activity`, ...(params ? [params] : []) ] as const; } export const getGetRecentActivityQueryOptions = >, TError = ErrorType>(params?: GetRecentActivityParams, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetRecentActivityQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => getRecentActivity(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type GetRecentActivityQueryResult = NonNullable>> export type GetRecentActivityQueryError = ErrorType /** * @summary Get recent activity feed */ export function useGetRecentActivity>, TError = ErrorType>( params?: GetRecentActivityParams, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetRecentActivityQueryOptions(params,options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; } export const getGetUpcomingDeadlinesUrl = () => { return `/api/dashboard/deadlines` } /** * @summary Get upcoming deadlines */ export const getUpcomingDeadlines = async ( options?: RequestInit): Promise => { return customFetch(getGetUpcomingDeadlinesUrl(), { ...options, method: 'GET' } );} export const getGetUpcomingDeadlinesQueryKey = () => { return [ `/api/dashboard/deadlines` ] as const; } export const getGetUpcomingDeadlinesQueryOptions = >, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ) => { const {query: queryOptions, request: requestOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetUpcomingDeadlinesQueryKey(); const queryFn: QueryFunction>> = ({ signal }) => getUpcomingDeadlines({ signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } } export type GetUpcomingDeadlinesQueryResult = NonNullable>> export type GetUpcomingDeadlinesQueryError = ErrorType /** * @summary Get upcoming deadlines */ export function useGetUpcomingDeadlines>, TError = ErrorType>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} ): UseQueryResult & { queryKey: QueryKey } { const queryOptions = getGetUpcomingDeadlinesQueryOptions(options) const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; return { ...query, queryKey: queryOptions.queryKey }; }