project-standalo-note-to-app/.workflow/versions/v001/contexts/page_apps.yml

219 lines
5.1 KiB
YAML

task_id: task_create_page_apps
entity_id: page_apps
generated_at: '2025-12-19T06:08:12.183205'
workflow_version: v001
target:
type: page
definition:
id: page_apps
name: Generated Apps
path: /apps
layout: layout_app
data_needs:
- api_id: api_list_apps
purpose: Display generated apps gallery
on_load: true
components:
- component_header
- component_sidebar
- component_app_gallery
- component_app_card
seo:
title: Generated Apps - NoteToApp
description: Your AI-generated applications
auth:
required: true
roles: []
redirect: /login
state:
local:
- filterType
global:
- user
related:
models: []
apis:
- id: api_list_apps
definition: &id001
id: api_list_apps
method: GET
path: /api/apps
summary: List generated apps
description: Get all apps generated for authenticated user
tags:
- apps
path_params: []
query_params:
- name: limit
type: integer
required: false
default: 50
description: Maximum number of apps to return
- name: offset
type: integer
required: false
default: 0
description: Number of apps to skip
request_body:
content_type: application/json
schema:
type: object
properties: []
responses:
- status: 200
description: Apps list
schema:
type: object
properties:
- name: apps
type: array
- name: total
type: integer
example:
apps:
- id: app-123
title: Todo App
app_type: todo
status: completed
created_at: '2024-12-19T06:00:00Z'
total: 12
depends_on_models:
- model_generated_app
depends_on_apis: []
auth:
required: true
roles: []
external: false
components:
- id: component_app_card
definition: &id002
id: component_app_card
name: AppCard
props:
- name: app
type: GeneratedApp
required: true
description: Generated app to display
- name: showActions
type: boolean
required: false
default: true
description: Show delete button
events:
- name: onClick
payload: string
description: Fired when card clicked, payload is app ID
- name: onDelete
payload: string
description: Fired when delete confirmed, payload is app ID
uses_apis: []
uses_components: []
internal_state:
- isDeleting
variants:
- default
- compact
external: false
- id: component_app_gallery
definition: &id003
id: component_app_gallery
name: AppGallery
props:
- name: apps
type: GeneratedApp[]
required: true
description: Array of generated apps to display
- name: isLoading
type: boolean
required: false
default: false
description: Whether apps are being loaded
events:
- name: onSelectApp
payload: string
description: Fired when app is clicked, payload is app ID
uses_apis: []
uses_components:
- component_app_card
internal_state: []
variants:
- grid
- list
external: false
- id: component_header
definition: &id004
id: component_header
name: Header
props:
- name: user
type: User | null
required: false
default: null
description: Current user for displaying name/avatar
events: []
uses_apis: []
uses_components: []
internal_state: []
variants:
- default
external: false
- id: component_sidebar
definition: &id005
id: component_sidebar
name: Sidebar
props:
- name: activePath
type: string
required: true
description: Current route path for highlighting
events:
- name: onNavigate
payload: string
description: Fired when navigation item clicked
uses_apis: []
uses_components: []
internal_state:
- isCollapsed
variants:
- default
external: false
dependencies:
entity_ids:
- api_list_apps
- component_app_card
- component_app_gallery
- component_header
- component_sidebar
definitions:
- id: api_list_apps
type: api
definition: *id001
external: false
- id: component_app_card
type: component
definition: *id002
external: false
- id: component_app_gallery
type: component
definition: *id003
external: false
- id: component_header
type: component
definition: *id004
external: false
- id: component_sidebar
type: component
definition: *id005
external: false
files:
to_create:
- app/apps/page.tsx
reference: []
acceptance:
- criterion: Page renders at /apps
verification: Navigate to /apps
- criterion: Data fetching works
verification: Check network tab
- criterion: Components render correctly
verification: Visual inspection