project-standalo-sonic-cloud/.workflow/versions/v003/dependency_graph.yml

371 lines
8.6 KiB
YAML

dependency_graph:
design_version: 2
workflow_version: v003
generated_at: '2025-12-18T17:43:33.701270'
generator: validate_design.py
stats:
total_entities: 21
total_layers: 4
max_parallelism: 9
critical_path_length: 4
layers:
- layer: 1
name: Data Layer
description: Database models - no external dependencies
items:
- id: api_get_label_stats
type: api
name: Get label statistics
depends_on: []
task_id: task_create_api_get_label_stats
agent: backend
complexity: medium
- id: api_remove_artist_from_label
type: api
name: Remove artist from label
depends_on: []
task_id: task_create_api_remove_artist_from_label
agent: backend
complexity: medium
- id: api_update_label
type: api
name: Update label profile
depends_on: []
task_id: task_create_api_update_label
agent: backend
complexity: medium
- id: component_artist_roster
type: component
name: ArtistRoster
depends_on: []
task_id: task_create_component_artist_roster
agent: frontend
complexity: medium
- id: component_invitation_card
type: component
name: InvitationCard
depends_on: []
task_id: task_create_component_invitation_card
agent: frontend
complexity: medium
- id: component_label_card
type: component
name: LabelCard
depends_on: []
task_id: task_create_component_label_card
agent: frontend
complexity: medium
- id: component_label_header
type: component
name: LabelHeader
depends_on: []
task_id: task_create_component_label_header
agent: frontend
complexity: medium
- id: component_label_stats
type: component
name: LabelStats
depends_on: []
task_id: task_create_component_label_stats
agent: frontend
complexity: medium
- id: model_label_invitation
type: model
name: LabelInvitation
depends_on: []
task_id: task_create_model_label_invitation
agent: backend
complexity: medium
requires_layers: []
parallel_count: 9
- layer: 2
name: API Layer
description: REST endpoints - depend on models
items:
- id: api_create_label_invitation
type: api
name: Create artist invitation
depends_on:
- model_label_invitation
task_id: task_create_api_create_label_invitation
agent: backend
complexity: medium
- id: api_delete_label_invitation
type: api
name: Cancel invitation
depends_on:
- model_label_invitation
task_id: task_create_api_delete_label_invitation
agent: backend
complexity: medium
- id: api_get_label
type: api
name: Get label details
depends_on:
- model_label_invitation
task_id: task_create_api_get_label
agent: backend
complexity: medium
- id: api_list_artist_invitations
type: api
name: List artist invitations
depends_on:
- model_label_invitation
task_id: task_create_api_list_artist_invitations
agent: backend
complexity: medium
- id: api_list_label_invitations
type: api
name: List label invitations
depends_on:
- model_label_invitation
task_id: task_create_api_list_label_invitations
agent: backend
complexity: medium
- id: api_respond_to_invitation
type: api
name: Respond to invitation
depends_on:
- model_label_invitation
task_id: task_create_api_respond_to_invitation
agent: backend
complexity: medium
- id: component_label_profile_form
type: component
name: LabelProfileForm
depends_on:
- api_update_label
task_id: task_create_component_label_profile_form
agent: frontend
complexity: medium
requires_layers:
- 1
parallel_count: 7
- layer: 3
name: UI Layer
description: Pages and components - depend on APIs
items:
- id: component_invite_artist_modal
type: component
name: InviteArtistModal
depends_on:
- api_create_label_invitation
task_id: task_create_component_invite_artist_modal
agent: frontend
complexity: medium
- id: page_label_profile
type: page
name: Label Profile
depends_on:
- api_get_label
- component_label_stats
- component_label_header
- api_get_label_stats
- component_artist_roster
task_id: task_create_page_label_profile
agent: frontend
complexity: medium
- id: page_label_settings
type: page
name: Label Settings
depends_on:
- component_label_profile_form
- api_get_label
task_id: task_create_page_label_settings
agent: frontend
complexity: medium
requires_layers:
- 1
- 2
parallel_count: 3
- layer: 4
name: Layer 4
description: Entities with 3 levels of dependencies
items:
- id: page_label_dashboard
type: page
name: Label Dashboard
depends_on:
- api_get_label
- component_invitation_card
- component_label_stats
- api_list_label_invitations
- component_invite_artist_modal
- api_get_label_stats
- component_artist_roster
task_id: task_create_page_label_dashboard
agent: frontend
complexity: medium
- id: page_label_invitations
type: page
name: Label Invitations
depends_on:
- component_invitation_card
- api_list_label_invitations
- component_invite_artist_modal
task_id: task_create_page_label_invitations
agent: frontend
complexity: medium
requires_layers:
- 1
- 2
- 3
parallel_count: 2
dependency_map:
model_label_invitation:
type: model
layer: 1
depends_on: []
depended_by:
- api_get_label
- api_create_label_invitation
- api_delete_label_invitation
- api_respond_to_invitation
- api_list_artist_invitations
- api_list_label_invitations
api_get_label:
type: api
layer: 2
depends_on:
- model_label_invitation
depended_by:
- page_label_profile
- page_label_settings
- page_label_dashboard
api_update_label:
type: api
layer: 1
depends_on: []
depended_by:
- component_label_profile_form
api_get_label_stats:
type: api
layer: 1
depends_on: []
depended_by:
- page_label_profile
- page_label_dashboard
api_list_label_invitations:
type: api
layer: 2
depends_on:
- model_label_invitation
depended_by:
- page_label_invitations
- page_label_dashboard
api_create_label_invitation:
type: api
layer: 2
depends_on:
- model_label_invitation
depended_by:
- component_invite_artist_modal
api_delete_label_invitation:
type: api
layer: 2
depends_on:
- model_label_invitation
depended_by: []
api_list_artist_invitations:
type: api
layer: 2
depends_on:
- model_label_invitation
depended_by: []
api_respond_to_invitation:
type: api
layer: 2
depends_on:
- model_label_invitation
depended_by: []
api_remove_artist_from_label:
type: api
layer: 1
depends_on: []
depended_by: []
page_label_profile:
type: page
layer: 3
depends_on:
- api_get_label
- component_label_stats
- component_label_header
- api_get_label_stats
- component_artist_roster
depended_by: []
page_label_dashboard:
type: page
layer: 4
depends_on:
- api_get_label
- component_invitation_card
- component_label_stats
- api_list_label_invitations
- component_invite_artist_modal
- api_get_label_stats
- component_artist_roster
depended_by: []
page_label_settings:
type: page
layer: 3
depends_on:
- component_label_profile_form
- api_get_label
depended_by: []
page_label_invitations:
type: page
layer: 4
depends_on:
- component_invitation_card
- api_list_label_invitations
- component_invite_artist_modal
depended_by: []
component_label_card:
type: component
layer: 1
depends_on: []
depended_by: []
component_label_header:
type: component
layer: 1
depends_on: []
depended_by:
- page_label_profile
component_label_stats:
type: component
layer: 1
depends_on: []
depended_by:
- page_label_profile
- page_label_dashboard
component_artist_roster:
type: component
layer: 1
depends_on: []
depended_by:
- page_label_profile
- page_label_dashboard
component_invitation_card:
type: component
layer: 1
depends_on: []
depended_by:
- page_label_invitations
- page_label_dashboard
component_invite_artist_modal:
type: component
layer: 3
depends_on:
- api_create_label_invitation
depended_by:
- page_label_invitations
- page_label_dashboard
component_label_profile_form:
type: component
layer: 2
depends_on:
- api_update_label
depended_by:
- page_label_settings
task_map: []