Rewrite frontend, added rooms, voltage selection per project, startet with todos

This commit is contained in:
2026-05-01 17:07:56 +02:00
parent 81d47ce16f
commit 65819900b1
49 changed files with 3695 additions and 394 deletions
+14 -1
View File
@@ -13,8 +13,22 @@ export interface ConsumerDto {
id: string;
projectId: string;
distributionBoardId: string | null;
circuitListId: string | null;
roomId: string | null;
circuitNumber: string | null;
description: string | null;
name: string;
category: string | null;
deviceType: string | null;
phaseType: string | null;
tradeOrCostGroup: string | null;
group: string | null;
protectionType: string | null;
protectionRatedCurrent: number | null;
protectionCharacteristic: string | null;
cableType: string | null;
cableCrossSection: string | null;
comment: string | null;
quantity: number;
installedPowerPerUnitKw: number;
demandFactor: number;
@@ -23,4 +37,3 @@ export interface ConsumerDto {
powerFactor: number | null;
note: string | null;
}
+34
View File
@@ -3,8 +3,22 @@ import { z } from "zod";
export const createConsumerSchema = z.object({
projectId: z.string().min(1),
distributionBoardId: z.string().min(1).optional(),
circuitListId: z.string().min(1).optional(),
roomId: z.string().min(1).optional(),
circuitNumber: z.string().optional(),
description: z.string().optional(),
name: z.string().min(1),
category: z.string().optional(),
deviceType: z.string().optional(),
phaseType: z.string().optional(),
tradeOrCostGroup: z.string().optional(),
group: z.string().optional(),
protectionType: z.string().optional(),
protectionRatedCurrent: z.number().min(0).optional(),
protectionCharacteristic: z.string().optional(),
cableType: z.string().optional(),
cableCrossSection: z.string().optional(),
comment: z.string().optional(),
quantity: z.number().min(0),
installedPowerPerUnitKw: z.number().min(0),
demandFactor: z.number().min(0).max(1),
@@ -18,13 +32,33 @@ export const updateConsumerSchema = createConsumerSchema;
export const createProjectSchema = z.object({
name: z.string().min(1),
singlePhaseVoltageV: z.number().positive().optional(),
threePhaseVoltageV: z.number().positive().optional(),
});
export const updateProjectSettingsSchema = z.object({
singlePhaseVoltageV: z.number().positive(),
threePhaseVoltageV: z.number().positive(),
});
export const createDistributionBoardSchema = z.object({
name: z.string().min(1),
});
export const createFloorSchema = z.object({
name: z.string().min(1),
});
export const createRoomSchema = z.object({
floorId: z.string().min(1).optional(),
roomNumber: z.string().min(1),
roomName: z.string().min(1),
});
export type CreateConsumerInput = z.infer<typeof createConsumerSchema>;
export type CreateProjectInput = z.infer<typeof createProjectSchema>;
export type UpdateProjectSettingsInput = z.infer<typeof updateProjectSettingsSchema>;
export type CreateDistributionBoardInput = z.infer<typeof createDistributionBoardSchema>;
export type UpdateConsumerInput = z.infer<typeof updateConsumerSchema>;
export type CreateFloorInput = z.infer<typeof createFloorSchema>;
export type CreateRoomInput = z.infer<typeof createRoomSchema>;
@@ -0,0 +1,18 @@
import { z } from "zod";
export const createGlobalDeviceSchema = z.object({
name: z.string().min(1),
category: z.string().optional(),
quantity: z.number().min(0),
installedPowerPerUnitKw: z.number().min(0),
demandFactor: z.number().min(0).max(1),
voltageV: z.number().positive().optional(),
phaseCount: z.union([z.literal(1), z.literal(3)]).optional(),
powerFactor: z.number().min(0).max(1).optional(),
note: z.string().optional(),
});
export const updateGlobalDeviceSchema = createGlobalDeviceSchema;
export type CreateGlobalDeviceInput = z.infer<typeof createGlobalDeviceSchema>;
export type UpdateGlobalDeviceInput = z.infer<typeof updateGlobalDeviceSchema>;
@@ -0,0 +1,18 @@
import { z } from "zod";
export const createProjectDeviceSchema = z.object({
name: z.string().min(1),
category: z.string().optional(),
quantity: z.number().min(0),
installedPowerPerUnitKw: z.number().min(0),
demandFactor: z.number().min(0).max(1),
voltageV: z.number().positive().optional(),
phaseCount: z.union([z.literal(1), z.literal(3)]).optional(),
powerFactor: z.number().min(0).max(1).optional(),
note: z.string().optional(),
});
export const updateProjectDeviceSchema = createProjectDeviceSchema;
export type CreateProjectDeviceInput = z.infer<typeof createProjectDeviceSchema>;
export type UpdateProjectDeviceInput = z.infer<typeof updateProjectDeviceSchema>;