22 lines
791 B
TypeScript
22 lines
791 B
TypeScript
export const IMPORT_LOG_RETENTION_OPTIONS = [3, 6, 12] as const;
|
|
|
|
export type ImportLogRetentionMonths = (typeof IMPORT_LOG_RETENTION_OPTIONS)[number];
|
|
|
|
export function isImportLogRetentionMonths(value: number): value is ImportLogRetentionMonths {
|
|
return IMPORT_LOG_RETENTION_OPTIONS.includes(value as ImportLogRetentionMonths);
|
|
}
|
|
|
|
/**
|
|
* Retourne la borne calendaire exclusive de la purge : les journaux strictement
|
|
* antérieurs à cette date peuvent être supprimés. Les factures et PDF ne sont
|
|
* jamais concernés par cette politique de rétention.
|
|
*/
|
|
export function getImportLogRetentionCutoff(
|
|
months: ImportLogRetentionMonths,
|
|
referenceDate = new Date(),
|
|
): Date {
|
|
const cutoff = new Date(referenceDate);
|
|
cutoff.setMonth(cutoff.getMonth() - months);
|
|
return cutoff;
|
|
}
|