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

113 lines
2.7 KiB
YAML

task_id: task_create_page_playlists
entity_id: page_playlists
generated_at: '2025-12-18T15:16:50.302020'
workflow_version: v001
target:
type: page
definition:
id: page_playlists
path: /playlists
title: My Playlists
description: User's playlists
data_needs:
- api_id: api_get_user_playlists
purpose: Load playlists
on_load: true
components:
- component_playlist_card
- component_create_playlist_modal
auth:
required: true
redirect_if_unauthorized: /login
related:
models: []
apis:
- id: api_get_user_playlists
definition: &id002
id: api_get_user_playlists
method: GET
path: /api/playlists
description: Get current user's playlists
responses:
- status: 200
description: List of playlists
schema:
playlists:
- id: uuid
name: string
cover_image_url: string
song_count: integer
auth:
required: true
depends_on_models:
- model_playlist
components:
- id: component_playlist_card
definition: &id001
id: component_playlist_card
name: PlaylistCard
description: Playlist preview card
props:
- name: playlist
type: Playlist
required: true
events:
- name: onClick
payload:
playlistId: string
uses_apis: []
uses_components: []
- id: component_create_playlist_modal
definition: &id003
id: component_create_playlist_modal
name: CreatePlaylistModal
description: Modal for creating new playlist
props:
- name: isOpen
type: boolean
required: true
state:
- name: name
type: string
- name: description
type: string
- name: isPublic
type: boolean
events:
- name: onCreate
payload:
name: string
description: string
isPublic: boolean
- name: onClose
payload: null
uses_apis:
- api_create_playlist
uses_components: []
dependencies:
entity_ids:
- component_playlist_card
- api_get_user_playlists
- component_create_playlist_modal
definitions:
- id: component_playlist_card
type: component
definition: *id001
- id: api_get_user_playlists
type: api
definition: *id002
- id: component_create_playlist_modal
type: component
definition: *id003
files:
to_create:
- app/playlists/page.tsx
reference: []
acceptance:
- criterion: Page renders at /playlists
verification: Navigate to /playlists
- criterion: Data fetching works
verification: Check network tab
- criterion: Components render correctly
verification: Visual inspection