metis-desk/modules/companies/src/api/application/printer-configuration-policy.ts

22 lines
1.0 KiB
TypeScript

import type { PrinterConfigurationValues } from "../domain/value-objects/printer-configuration-values";
import type { PrinterContext } from "./printer-configuration.repository";
export function printerReferences(values: PrinterConfigurationValues, context: PrinterContext) {
const profile = context.profiles.find((item) => item.id.equals(values.profileId));
return (
!!profile &&
!profile.values.assetId.equals(values.printerId) &&
context.assets.some((asset) => asset.id.equals(values.printerId))
);
}
export function printerAvailable(values: PrinterConfigurationValues, context: PrinterContext) {
const profile = context.profiles.find((item) => item.id.equals(values.profileId));
return (
!!profile &&
profile.values.active &&
context.people.some((person) => person.id.equals(profile.values.personId) && person.active) &&
context.assets.some((asset) => asset.id.equals(profile.values.assetId) && asset.available) &&
context.assets.some((asset) => asset.id.equals(values.printerId) && asset.available)
);
}