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

33 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-10-09 08:38:19 +00:00
import type { ApplicationConfigurationValues } from "../domain/value-objects/application-configuration-values.vo";
import type { ApplicationContext } from "./application-configuration.repository";
2026-10-10 10:01:58 +00:00
export function applicationReferences(
values: ApplicationConfigurationValues,
context: ApplicationContext
) {
return (
context.profiles.some((item) => item.id.equals(values.profileId)) &&
context.resources.some(
(item) => item.id.equals(values.resourceId) && item.usage === "application"
)
);
}
2026-10-10 10:01:58 +00:00
export function applicationAvailable(
values: ApplicationConfigurationValues,
context: ApplicationContext
) {
const profile = context.profiles.find((item) => item.id.equals(values.profileId));
2026-10-10 10:01:58 +00:00
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.notRetired) &&
context.resources.some(
(item) => item.id.equals(values.resourceId) && item.active && item.usage === "application"
)
);
}