Skip to content

Instantly share code, notes, and snippets.

@SuperRembo
Last active July 28, 2025 14:57
Show Gist options
  • Save SuperRembo/36785eff5c15f6d13dd0fb996f9380d0 to your computer and use it in GitHub Desktop.
Save SuperRembo/36785eff5c15f6d13dd0fb996f9380d0 to your computer and use it in GitHub Desktop.

Simplified by removing some states in the ImportOfficeSettingsRelatedToFixedAssetsSaga (full version below)

stateDiagram-v2
    %% CompanyCreationSaga group
    state "CompanyCreationSaga" as CCS {
        [*] --> ccs_created    : 
        ccs_created --> ccs_started : CompanyCreationStarted3
        ccs_started --> ccs_templateDataCopied : CompanyDataCopied
        ccs_started --> ccs_copyingDataFailed : CopyingDataFailed
        ccs_fixedAssetsDataCopied --> ccs_completed : CompanyCreationFinished
        ccs_copyingDataFailed --> ccs_completed : CompanyCreationFailed

        ccs_created    : Created
        ccs_started    : Started
        ccs_templateDataCopied : TemplateDataCopied
        ccs_fixedAssetsDataCopied : FixedAssetsDataCopied
        ccs_copyingDataFailed  : CopyingDataFailed
        ccs_completed  : Completed (CompanyCreationSaga)
    }

    %% ImportOfficeSettingsRelatedToFixedAssetsSaga group
    state "ImportOfficeSettingsRelatedToFixedAssetsSaga" as IOSRFS {
        [*] --> iosrfs_created    : 
        iosrfs_created --> iosrfs_importFixedAssetOrigins : ImportOfficeSettingsRelatedToFixedAssetsStarted
        iosrfs_importFixedAssetOrigins --> iosrfs_importRegimes : GeneralLedgerAccountsImported
        iosrfs_importRegimes --> iosrfs_importClasses : RegimesSet
        iosrfs_importClasses --> iosrfs_completed : FixedAssetClassesImported

        iosrfs_created    : Created
        iosrfs_importFixedAssetOrigins : ImportFixedAssetOrigins
        iosrfs_importRegimes : ImportRegimes
        iosrfs_importClasses : ImportClasses
        iosrfs_completed : Completed (ImportOfficeSettingsSaga)
    }

    %% Inter-saga trigger
    ccs_templateDataCopied --> iosrfs_created : CompanyCreationFinished
    iosrfs_completed --> ccs_fixedAssetsDataCopied : ImportOfficeSettingsRelatedToFixedAssetsFinished

    %% Command node (optional, if you want to show the command explicitly)
    %% ccs_templateDataCopied --> importOfficeSettingsCmd : CompanyCreationFinished
    %% importOfficeSettingsCmd --> iosrfs_created : ImportOfficeSettingsRelatedToFixedAssets (command)
Loading

stateDiagram-v2
    %% CompanyCreationSaga group
    state "CompanyCreationSaga" as CCS {
        [*] --> ccs_created    : 
        ccs_created --> ccs_started : CompanyCreationStarted3
        ccs_started --> ccs_templateDataCopied : CompanyDataCopied
        ccs_started --> ccs_copyingDataFailed : CopyingDataFailed
        ccs_fixedAssetsDataCopied --> ccs_completed : CompanyCreationFinished
        ccs_copyingDataFailed --> ccs_completed : CompanyCreationFailed

        ccs_created    : Created
        ccs_started    : Started
        ccs_templateDataCopied : TemplateDataCopied
        ccs_fixedAssetsDataCopied : FixedAssetsDataCopied
        ccs_copyingDataFailed  : CopyingDataFailed
        ccs_completed  : Completed (CompanyCreationSaga)
    }

    %% ImportOfficeSettingsRelatedToFixedAssetsSaga group
    state "ImportOfficeSettingsRelatedToFixedAssetsSaga" as IOSRFS {
        [*] --> iosrfs_created    : 
        iosrfs_created --> iosrfs_importFixedAssetOrigins : ImportOfficeSettingsRelatedToFixedAssetsStarted
        iosrfs_importFixedAssetOrigins --> iosrfs_importFixedAssetReasons : FixedAssetOriginsSaved
        iosrfs_importFixedAssetReasons --> iosrfs_importLocations : FixedAssetReasonsSaved
        iosrfs_importLocations --> iosrfs_importPartners : FixedAssetLocationsSaved
        iosrfs_importPartners --> iosrfs_importAssetTypes : FixedAssetPartnersSaved
        iosrfs_importAssetTypes --> iosrfs_importGeneralLedgerAccounts : FixedAssetTypesImported
        iosrfs_importGeneralLedgerAccounts --> iosrfs_importRegimes : GeneralLedgerAccountsImported
        iosrfs_importRegimes --> iosrfs_importClasses : RegimesSet
        iosrfs_importClasses --> iosrfs_completed : FixedAssetClassesImported

        iosrfs_created    : Created
        iosrfs_importFixedAssetOrigins : ImportFixedAssetOrigins
        iosrfs_importFixedAssetReasons : ImportFixedAssetReasons
        iosrfs_importLocations : ImportLocations
        iosrfs_importPartners : ImportPartners
        iosrfs_importAssetTypes : ImportAssetTypes
        iosrfs_importGeneralLedgerAccounts : ImportGeneralLedgerAccounts
        iosrfs_importRegimes : ImportRegimes
        iosrfs_importClasses : ImportClasses
        iosrfs_completed : Completed (ImportOfficeSettingsSaga)
    }

    %% Inter-saga trigger
    ccs_templateDataCopied --> iosrfs_created : CompanyCreationFinished
    iosrfs_completed --> ccs_fixedAssetsDataCopied : ImportOfficeSettingsRelatedToFixedAssetsFinished

    %% Command node (optional, if you want to show the command explicitly)
    %% ccs_templateDataCopied --> importOfficeSettingsCmd : CompanyCreationFinished
    %% importOfficeSettingsCmd --> iosrfs_created : ImportOfficeSettingsRelatedToFixedAssets (command)
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment