import type { BaseEntity, Collection, Opt, Ref } from '@mikro-orm/core'; import type { IdentifiableEntity } from '../types'; export interface HasTidEntity { tid: string; } export interface HasSidEntity { sid: number; } export interface HasVendorRefEntity { cid?: string; rid?: string; } export interface HasStateStatusEntity { state: string & Opt; status: string & Opt; } export interface HasTagsEntity { tags?: string[]; } export interface HasDisplayOrderEntity { displayOrder: number; } export interface HasLabelsEntity { labels: Collection; } export interface HasNotesEntity { notes?: string; } export interface HasMetadataEntity { metadata?: Record; } export interface HasCodeEntity { code?: string; } export interface HasEntityRefEntity { entityId?: string; entityType?: string; entity?: Ref; } export interface HasRequiredEntityRefEntity { entityId: string; entityType: string; entity: Ref; } export interface HasCustomerRefEntity { customerId?: string; customerType?: string; customer?: Ref; } export interface HasOwnerRefEntity { ownerId?: string; ownerType?: string; owner?: Ref; } export interface HasAuditorRefEntity { createdById?: string; updatedById?: string; deletedById?: string; } export interface HasSlugEntity { slug?: string; } export interface HasAuditorEntity extends HasAuditorRefEntity { get createdBy(): Ref; get updatedBy(): Ref; get deletedBy(): Ref; } export interface IsHierarchyEntity> extends IdentifiableEntity { parent?: E; children: Collection; parentId?: string; } export interface HasTitleDescriptionEntity { title: string; description?: string; } interface _IsConnectionEntity extends IdentifiableEntity { entity1Id?: string; entity1Type?: string; entity1?: Ref; entity1Role?: string; entity2Id?: string; entity2Type?: string; entity2?: Ref; entity2Role?: string; effectiveStart?: Date; effectiveEnd?: Date; description?: string; entityImage?: string; } interface _IsRelationEntity extends IdentifiableEntity { entityId: string; entityType: string; entity: Ref; relatedId: string; relatedType: string; related: Ref; displayOrder: number; } // Connection Association Link, Join, Relation interface IsUserEntity extends IdentifiableEntity {}