import type { UniqueID } from "@repo/rdx-ddd"; import { DomainEntity } from "@repo/rdx-ddd"; import type { ResourceSpecification, ResourceValues } from "./value-objects/resource-values.vo"; export type ResourceRevisionProps = Readonly<{ values: ResourceValues; specification: ResourceSpecification; actorId: UniqueID; recordedAt: string; }>; export class ResourceRevision extends DomainEntity { static create(props: ResourceRevisionProps) { return new ResourceRevision(props); } static rehydrate(props: ResourceRevisionProps, id: UniqueID) { return new ResourceRevision(props, id); } get specification() { return this.props.specification; } get values() { return this.props.values; } get actorId() { return this.props.actorId; } get recordedAt() { return this.props.recordedAt; } }