diff --git a/app/MindWork AI Studio/Components/ConfigurationSelectData.cs b/app/MindWork AI Studio/Components/ConfigurationSelectData.cs index 1e77a1d4..6ed436ed 100644 --- a/app/MindWork AI Studio/Components/ConfigurationSelectData.cs +++ b/app/MindWork AI Studio/Components/ConfigurationSelectData.cs @@ -30,4 +30,21 @@ public static class ConfigurationSelectDataFactory yield return new("Check every day", UpdateBehavior.DAILY); yield return new ("Check every week", UpdateBehavior.WEEKLY); } + + public static IEnumerable> GetWorkspaceStorageBehaviorData() + { + yield return new("Disable workspaces", WorkspaceStorageBehavior.DISABLE_WORKSPACES); + yield return new("Store chats automatically", WorkspaceStorageBehavior.STORE_CHATS_AUTOMATICALLY); + yield return new("Store chats manually", WorkspaceStorageBehavior.STORE_CHATS_MANUALLY); + } + + public static IEnumerable> GetWorkspaceStorageTemporaryMaintenancePolicyData() + { + yield return new("No automatic maintenance for temporary chats", WorkspaceStorageTemporaryMaintenancePolicy.NO_AUTOMATIC_MAINTENANCE); + yield return new("Delete temporary chats older than 7 days", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_7_DAYS); + yield return new("Delete temporary chats older than 30 days", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_30_DAYS); + yield return new("Delete temporary chats older than 90 days", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_90_DAYS); + yield return new("Delete temporary chats older than 180 days", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_180_DAYS); + yield return new("Delete temporary chats older than 1 year", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_365_DAYS); + } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Pages/Settings.razor b/app/MindWork AI Studio/Components/Pages/Settings.razor index 2a9414e4..c8b827be 100644 --- a/app/MindWork AI Studio/Components/Pages/Settings.razor +++ b/app/MindWork AI Studio/Components/Pages/Settings.razor @@ -62,5 +62,7 @@ + + \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/Data.cs b/app/MindWork AI Studio/Settings/Data.cs index 8ce5120b..e4efb078 100644 --- a/app/MindWork AI Studio/Settings/Data.cs +++ b/app/MindWork AI Studio/Settings/Data.cs @@ -41,4 +41,14 @@ public sealed class Data /// If and when we should look for updates. /// public UpdateBehavior UpdateBehavior { get; set; } = UpdateBehavior.ONCE_STARTUP; + + /// + /// The chat storage behavior. + /// + public WorkspaceStorageBehavior WorkspaceStorageBehavior { get; set; } = WorkspaceStorageBehavior.STORE_CHATS_AUTOMATICALLY; + + /// + /// The chat storage maintenance behavior. + /// + public WorkspaceStorageTemporaryMaintenancePolicy WorkspaceStorageTemporaryMaintenancePolicy { get; set; } = WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_90_DAYS; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/WorkspaceStorageBehavior.cs b/app/MindWork AI Studio/Settings/WorkspaceStorageBehavior.cs new file mode 100644 index 00000000..d115fb1d --- /dev/null +++ b/app/MindWork AI Studio/Settings/WorkspaceStorageBehavior.cs @@ -0,0 +1,9 @@ +namespace AIStudio.Settings; + +public enum WorkspaceStorageBehavior +{ + DISABLE_WORKSPACES, + + STORE_CHATS_AUTOMATICALLY, + STORE_CHATS_MANUALLY, +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/WorkspaceStorageTemporaryMaintenancePolicy.cs b/app/MindWork AI Studio/Settings/WorkspaceStorageTemporaryMaintenancePolicy.cs new file mode 100644 index 00000000..d635f014 --- /dev/null +++ b/app/MindWork AI Studio/Settings/WorkspaceStorageTemporaryMaintenancePolicy.cs @@ -0,0 +1,12 @@ +namespace AIStudio.Settings; + +public enum WorkspaceStorageTemporaryMaintenancePolicy +{ + NO_AUTOMATIC_MAINTENANCE, + + DELETE_OLDER_THAN_7_DAYS, + DELETE_OLDER_THAN_30_DAYS, + DELETE_OLDER_THAN_90_DAYS, + DELETE_OLDER_THAN_180_DAYS, + DELETE_OLDER_THAN_365_DAYS, +} \ No newline at end of file