{
  "files": {
    "internal/infrastructure/postgres/user_repository.go": {
      "hash": "ebc8d117ab9b489514171fa9536aaa72b3961f63579514d49ae79c274917d0c7",
      "components": [
        {
          "id": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/infrastructure/postgres::PostgresUserRepository",
          "name": "PostgresUserRepository",
          "kind": "Repository",
          "layer": "Infrastructure",
          "location": {
            "file": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/infrastructure/postgres/user_repository.go",
            "line": 9,
            "column": 6
          },
          "is_cross_cutting": false,
          "architecture_mode": "ddd"
        }
      ],
      "dependencies": [
        {
          "from": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/infrastructure/postgres::<file>",
          "to": "github.com/example/app/internal/domain/user::<package>",
          "kind": "Import",
          "location": {
            "file": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/infrastructure/postgres/user_repository.go",
            "line": 5,
            "column": 2
          },
          "import_path": "github.com/example/app/internal/domain/user"
        }
      ]
    },
    "internal/domain/user/bad_dependency.go": {
      "hash": "a991f9a9731c8bd4a3b819ee3d7676a9835fda2a2e23be384b8153f1e912c280",
      "components": [],
      "dependencies": [
        {
          "from": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/domain/user::<file>",
          "to": "github.com/example/app/internal/infrastructure/postgres::<package>",
          "kind": "Import",
          "location": {
            "file": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/domain/user/bad_dependency.go",
            "line": 4,
            "column": 2
          },
          "import_path": "github.com/example/app/internal/infrastructure/postgres"
        }
      ]
    },
    "internal/application/user/service.go": {
      "hash": "22a93c0ec6de90fe5488c095d6a6a09de5248b44fc2690250c74a50b62ce1bfe",
      "components": [
        {
          "id": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/application/user::UserService",
          "name": "UserService",
          "kind": "Service",
          "layer": "Application",
          "location": {
            "file": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/application/user/service.go",
            "line": 8,
            "column": 6
          },
          "is_cross_cutting": false,
          "architecture_mode": "ddd"
        }
      ],
      "dependencies": [
        {
          "from": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/application/user::<file>",
          "to": "github.com/example/app/internal/domain/user::<package>",
          "kind": "Import",
          "location": {
            "file": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/application/user/service.go",
            "line": 4,
            "column": 2
          },
          "import_path": "github.com/example/app/internal/domain/user"
        }
      ]
    },
    "internal/domain/user/entity.go": {
      "hash": "eb67f819a460362f81cffd3ee52ccc0ed6942c03cb17fb1c29204cc37377a870",
      "components": [
        {
          "id": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/domain/user::UserRepository",
          "name": "UserRepository",
          "kind": {
            "Port": {
              "name": "UserRepository",
              "methods": [
                {
                  "name": "Save",
                  "parameters": "(user *User)",
                  "return_type": "error"
                },
                {
                  "name": "FindByID",
                  "parameters": "(id string)",
                  "return_type": "(*User, error)"
                },
                {
                  "name": "Delete",
                  "parameters": "(id string)",
                  "return_type": "error"
                }
              ]
            }
          },
          "layer": "Domain",
          "location": {
            "file": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/domain/user/entity.go",
            "line": 11,
            "column": 6
          },
          "is_cross_cutting": false,
          "architecture_mode": "ddd"
        },
        {
          "id": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/domain/user::User",
          "name": "User",
          "kind": {
            "Entity": {
              "name": "User",
              "fields": [
                {
                  "name": "ID",
                  "type_name": "string"
                },
                {
                  "name": "Name",
                  "type_name": "string"
                },
                {
                  "name": "Email",
                  "type_name": "string"
                }
              ],
              "methods": [],
              "is_active_record": false,
              "is_anemic_domain_model": false
            }
          },
          "layer": "Domain",
          "location": {
            "file": "/Users/smorgan/source/personal/boundary/crates/boundary/tests/fixtures/sample-go-project/internal/domain/user/entity.go",
            "line": 4,
            "column": 6
          },
          "is_cross_cutting": false,
          "architecture_mode": "ddd"
        }
      ],
      "dependencies": []
    }
  }
}
