project-standalo-sonic-cloud/.workflow/versions/v001/contexts/page_profile.yml

142 lines
3.3 KiB
YAML

task_id: task_create_page_profile
entity_id: page_profile
generated_at: '2025-12-18T15:16:50.305216'
workflow_version: v001
target:
type: page
definition:
id: page_profile
path: /profile
title: Profile Settings
description: User profile settings
data_needs:
- api_id: api_get_current_user
purpose: Load user data
on_load: true
- api_id: api_update_current_user
purpose: Update profile
on_load: false
components:
- component_profile_form
- component_avatar_upload
auth:
required: true
redirect_if_unauthorized: /login
related:
models: []
apis:
- id: api_update_current_user
definition: &id001
id: api_update_current_user
method: PUT
path: /api/users/me
description: Update current user profile
request_body:
name: string
avatar_url: string
responses:
- status: 200
description: User updated
schema:
id: uuid
email: string
name: string
avatar_url: string
auth:
required: true
depends_on_models:
- model_user
- id: api_get_current_user
definition: &id003
id: api_get_current_user
method: GET
path: /api/users/me
description: Get current user profile
responses:
- status: 200
description: User profile
schema:
id: uuid
email: string
name: string
role: string
avatar_url: string
auth:
required: true
depends_on_models:
- model_user
components:
- id: component_profile_form
definition: &id002
id: component_profile_form
name: ProfileForm
description: User profile edit form
props:
- name: user
type: User
required: true
state:
- name: name
type: string
- name: avatarUrl
type: string
events:
- name: onSave
payload:
name: string
avatarUrl: string
uses_apis:
- api_update_current_user
uses_components:
- component_avatar_upload
- id: component_avatar_upload
definition: &id004
id: component_avatar_upload
name: AvatarUpload
description: Avatar image upload component
props:
- name: currentAvatarUrl
type: string
required: false
state:
- name: file
type: File
- name: preview
type: string
events:
- name: onUpload
payload:
file: File
uses_apis: []
uses_components: []
dependencies:
entity_ids:
- api_update_current_user
- component_profile_form
- api_get_current_user
- component_avatar_upload
definitions:
- id: api_update_current_user
type: api
definition: *id001
- id: component_profile_form
type: component
definition: *id002
- id: api_get_current_user
type: api
definition: *id003
- id: component_avatar_upload
type: component
definition: *id004
files:
to_create:
- app/profile/page.tsx
reference: []
acceptance:
- criterion: Page renders at /profile
verification: Navigate to /profile
- criterion: Data fetching works
verification: Check network tab
- criterion: Components render correctly
verification: Visual inspection