metis-desk/modules/companies/src/common/remote-connections.ts
2026-10-10 12:01:58 +02:00

48 lines
1.3 KiB
TypeScript

import { z } from "zod/v4";
import { RemoteConnectionInputSchema } from "../api/domain/remote-connection-values";
export type { RemoteConnectionInput } from "../api/domain/remote-connection-values";
export {
REMOTE_STATE_TRANSITIONS,
RemoteConnectionInputSchema,
} from "../api/domain/remote-connection-values";
export const RemoteParamsSchema = z.strictObject({ companyId: z.uuid() });
export const RemoteItemParamsSchema = RemoteParamsSchema.extend({ id: z.uuid() });
export const SaveRemoteConnectionRequestSchema = z.strictObject({
values: RemoteConnectionInputSchema,
});
export const RemoteConnectionSchema = z.strictObject({
id: z.uuid(),
companyId: z.uuid(),
values: RemoteConnectionInputSchema,
needsReview: z.boolean(),
authorizationEffective: z.boolean(),
history: z
.array(
z.strictObject({
id: z.uuid(),
actorId: z.uuid(),
actorName: z.string().min(1),
recordedAt: z.iso.datetime(),
values: RemoteConnectionInputSchema,
})
)
.min(1),
});
export const RemoteConnectionsResponseSchema = z.strictObject({
connections: z.array(RemoteConnectionSchema),
});
export const RemoteConnectionResponseSchema = z.strictObject({
connection: RemoteConnectionSchema,
});
export type RemoteConnectionDTO = z.infer<typeof RemoteConnectionSchema>;