export interface MatchingAutomations {
readonly get: (stateChange: StateChangeEntity) => Effect.Effect<PinoLogger | TemplateTriggerDAO | UserFiltersService, unknown, string[]>;
}
export const MatchingAutomations = Context.Tag<MatchingAutomations>();
export const MatchingAutomationsLive = Layer.effect(
MatchingAutomations,
Effect.all([FactSheetsDAOTag, MissingFactSheetmetricTag, PinoLoggerTag, TemplateTriggerDAOTag, UserFiltersServiceTag]).pipe(
Effect.map(([factSheetsDAO, missingFactSheetmetric, pinoLogger, templateTriggerDAO, userFilterService]) =>
MatchingAutomations.of({
get: flow(
getMatchingAutomations,
Effect.provideService(FactSheetsDAOTag, factSheetsDAO),
Effect.provideService(MissingFactSheetmetricTag, missingFactSheetmetric),
Effect.provideService(PinoLoggerTag, pinoLogger),
Effect.provideService(TemplateTriggerDAOTag, templateTriggerDAO),
Effect.provideService(UserFiltersServiceTag, userFilterService)
)
})
)
)
);
export interface MatchingAutomations {
readonly get: (stateChange: StateChangeEntity) => Effect.Effect<PinoLogger | TemplateTriggerDAO | UserFiltersService, unknown, string[]>;
}
export const MatchingAutomations = Context.Tag<MatchingAutomations>();
export const MatchingAutomationsLive = Layer.effect(
MatchingAutomations,
Effect.all([FactSheetsDAOTag, MissingFactSheetmetricTag, PinoLoggerTag, TemplateTriggerDAOTag, UserFiltersServiceTag]).pipe(
Effect.map(([factSheetsDAO, missingFactSheetmetric, pinoLogger, templateTriggerDAO, userFilterService]) =>
MatchingAutomations.of({
get: flow(
getMatchingAutomations,
Effect.provideService(FactSheetsDAOTag, factSheetsDAO),
Effect.provideService(MissingFactSheetmetricTag, missingFactSheetmetric),
Effect.provideService(PinoLoggerTag, pinoLogger),
Effect.provideService(TemplateTriggerDAOTag, templateTriggerDAO),
Effect.provideService(UserFiltersServiceTag, userFilterService)
)
})
)
)
);