project-standalo-sonic-cloud/.workflow/versions/v003/contexts/page_label_settings.yml

134 lines
3.2 KiB
YAML

task_id: task_create_page_label_settings
entity_id: page_label_settings
generated_at: '2025-12-18T17:43:33.727545'
workflow_version: v003
target:
type: page
definition:
id: page_label_settings
name: Label Settings
path: /label/settings
layout: layout_main
data_needs:
- api_id: api_get_label
purpose: Load current label data for editing
on_load: true
components:
- component_label_profile_form
seo:
title: Label Settings | Sonic Cloud
description: Edit your label profile
auth:
required: true
roles:
- label
redirect: /login
related:
models: []
apis:
- id: api_get_label
definition: &id002
id: api_get_label
method: GET
path: /api/labels/[id]
summary: Get label details
description: Retrieve label profile with artist roster and statistics
tags:
- labels
path_params:
- name: id
type: string
description: Label ID
responses:
- status: 200
description: Label found
schema:
type: object
properties:
- name: id
type: uuid
- name: name
type: string
- name: slug
type: string
- name: description
type: string
- name: logoUrl
type: string
- name: website
type: string
- name: artists
type: array
- name: _count
type: object
example:
id: 550e8400-e29b-41d4-a716-446655440000
name: Sonic Records
slug: sonic-records
description: Independent music label
artists: []
_count:
artists: 5
songs: 120
- status: 404
description: Label not found
schema:
type: object
properties:
- name: error
type: string
depends_on_models:
- model_label_invitation
depends_on_apis: []
auth:
required: false
roles: []
components:
- id: component_label_profile_form
definition: &id001
id: component_label_profile_form
name: LabelProfileForm
props:
- name: label
type: Label
required: true
description: Current label data
events:
- name: onSave
payload: Label
description: Fires when form saved successfully
- name: onCancel
payload: void
description: Fires when cancel clicked
uses_apis:
- api_update_label
uses_components: []
internal_state:
- formData
- isSubmitting
- errors
variants:
- default
dependencies:
entity_ids:
- component_label_profile_form
- api_get_label
definitions:
- id: component_label_profile_form
type: component
definition: *id001
- id: api_get_label
type: api
definition: *id002
files:
to_create:
- app/label/settings/page.tsx
reference: []
acceptance:
- criterion: Page renders at /label/settings
verification: Navigate to /label/settings
- criterion: Data fetching works
verification: Check network tab
- criterion: Components render correctly
verification: Visual inspection