19 lines
686 B
TypeScript
19 lines
686 B
TypeScript
|
|
import type { AssetInput, AssetRecordedInput } from "./asset-values";
|
||
|
|
|
||
|
|
export function assetTechnicalStatus(status: AssetRecordedInput["status"]): AssetInput["status"] {
|
||
|
|
return status === "available" || status === "in_use" ? "operational" : status;
|
||
|
|
}
|
||
|
|
|
||
|
|
export function assetDisplayStatus(status: AssetInput["status"], assigned: boolean) {
|
||
|
|
return status === "operational" ? (assigned ? "in_use" : "available") : status;
|
||
|
|
}
|
||
|
|
|
||
|
|
export function canAssignAsset(
|
||
|
|
status: AssetInput["status"],
|
||
|
|
kind: "exclusive" | "shared",
|
||
|
|
exclusiveElsewhere: boolean,
|
||
|
|
sharedElsewhere: boolean
|
||
|
|
) {
|
||
|
|
return status === "operational" && !exclusiveElsewhere && (kind === "shared" || !sharedElsewhere);
|
||
|
|
}
|