feature: "add share music system" mode: full_auto finalized_at: "2025-12-18T18:06:00" analysis: problem_statement: "Users cannot share music or promote content outside the platform" target_users: "Artists promoting music, users recommending songs, playlist curators" core_value: "Enable viral music discovery through effortless sharing" scope: mvp_features: - Share songs via unique link - Share playlists via unique link - Share albums via unique link - Copy link to clipboard - Social media share buttons (Twitter, Facebook) - ShareButton component for triggering share - ShareModal with share options - Public landing page for shared content - Basic share analytics data_model: entities: - name: Share table: shares fields: - name: id type: uuid primary: true - name: type type: enum values: [song, playlist, album] - name: target_id type: uuid - name: token type: string unique: true - name: user_id type: uuid nullable: true - name: platform type: string nullable: true - name: click_count type: integer default: 0 - name: created_at type: timestamp api_endpoints: - method: POST path: /api/share/song/:id purpose: Generate share link for a song - method: POST path: /api/share/playlist/:id purpose: Generate share link for a playlist - method: POST path: /api/share/album/:id purpose: Generate share link for an album - method: GET path: /api/share/:token purpose: Resolve share token and get content - method: POST path: /api/share/:token/click purpose: Track share link click ui_structure: pages: - name: SharePage route: /s/:token purpose: Landing page for shared content components: - name: ShareButton purpose: Trigger share modal on songs/playlists/albums - name: ShareModal purpose: Display share options (copy link, social buttons) - name: SocialShareButtons purpose: Twitter and Facebook share buttons acceptance_criteria: - criterion: "User can generate share link for any song" verification: "Click share button on song, get unique link, link works" - criterion: "User can generate share link for playlist" verification: "Click share button on playlist, get unique link, link works" - criterion: "User can generate share link for album" verification: "Click share button on album, get unique link, link works" - criterion: "Copy to clipboard works" verification: "Click copy button, paste shows correct URL" - criterion: "Social share buttons open correct URLs" verification: "Twitter/Facebook buttons open share dialogs with content" - criterion: "Share page displays content correctly" verification: "Visit share link, see song/playlist/album with play option" - criterion: "Share page has call-to-action" verification: "Share page shows 'Listen on Sonic Cloud' or 'Sign up' button"