- Add SoftwareInstallationValues value object for encapsulating software installation data. - Create HTTP routes for managing software installations, including GET, POST, and DELETE operations. - Implement Sequelize repository for software installations, handling database interactions. - Add migration script for creating necessary database tables for software installations. - Create persistence mapper for transforming between domain models and database rows. - Define snapshot schema for software installations to ensure data consistency. - Introduce common schemas for software installations to validate API requests and responses. - Develop UI components for displaying and managing software installations, including history dialogs and forms. - Implement API client for interacting with software installation endpoints. - Write tests for software installations panel and form components to ensure functionality.
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import type { UniqueID } from "@repo/rdx-ddd";
|
|
import type { Result } from "@repo/rdx-utils";
|
|
|
|
import type { ApplicationConfiguration } from "../domain/application-configuration.aggregate";
|
|
import type { ApplicationConfigurationError } from "../domain/application-configuration-values";
|
|
import type { WorkProfile } from "../domain/work-profile.aggregate";
|
|
|
|
export type ApplicationContext = Readonly<{
|
|
configurations: readonly ApplicationConfiguration[];
|
|
profiles: readonly WorkProfile[];
|
|
people: readonly { id: UniqueID; active: boolean }[];
|
|
assets: readonly { id: UniqueID; available: boolean }[];
|
|
resources: readonly {
|
|
id: UniqueID;
|
|
active: boolean;
|
|
usage: "application" | "certificate" | "support" | "os" | null;
|
|
}[];
|
|
actors: ReadonlyMap<string, string>;
|
|
}>;
|
|
|
|
export interface IApplicationConfigurationRepository {
|
|
remove(company: UniqueID, id: UniqueID): Promise<Result<void, ApplicationConfigurationError>>;
|
|
get(company: UniqueID): Promise<Result<ApplicationContext, ApplicationConfigurationError>>;
|
|
save(
|
|
company: UniqueID,
|
|
action: (
|
|
context: ApplicationContext
|
|
) => Result<ApplicationConfiguration, ApplicationConfigurationError>
|
|
): Promise<
|
|
Result<
|
|
{ configuration: ApplicationConfiguration; context: ApplicationContext },
|
|
ApplicationConfigurationError
|
|
>
|
|
>;
|
|
}
|