import { RolePermission } from "@/resources/entityPermissions"; export interface Entity { id: string; label: string; licenses: number; expiryDate?: Date | null payment?: { currency: string price: number } } export interface Role { id: string; entityID: string; permissions: RolePermission[]; label: string; isDefault?: boolean } export interface EntityWithRoles extends Entity { roles: Role[]; }; export type WithLabeledEntities = T extends { entities: { id: string; role: string }[] } ? Omit & { entities: { id: string; label?: string; role: string, roleLabel?: string }[] } : T; export type WithEntity = T extends { entity?: string } ? Omit & { entity: Entity } : T; export type WithEntities = T extends { entities: { id: string; role: string }[] } ? Omit & { entities: { entity?: Entity; role?: Role }[] } : T;