/* * Copyright © 2024 Hexastack. All rights reserved. * * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission. * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ import { BaseSchema } from '../generics/base-schema'; export type TOptionalPropertyOf = Exclude< { [K in keyof T]: T extends Record ? never : K; }[keyof T], undefined >; //fixtures types export type TFixtures = Omit & { createdAt?: BaseSchema['createdAt']; }; export type TFixturesDefaultValues> = { [key in TOptionalPropertyOf]?: S[key]; } & { createdAt?: BaseSchema['createdAt'] }; export type TOptionalPropertyFrom = Pick< O1, Exclude > & Pick>; export type OptionalProperties = Omit< T, K | keyof BaseSchema > & Partial>; export type FixturesTypeBuilder< S extends object, D extends object, DO = TFixturesDefaultValues, U = Partial>>, > = { defaultValues: DO & U; values: OptionalProperties; };