@startuml 03-이벤트콘텐츠생성
!theme mono

title 유저플로우 03: 이벤트 콘텐츠 생성 및 편집

actor "소상공인" as Owner
participant "콘텐츠 생성 시스템" as ContentSystem
participant "Stable Diffusion" as SD
participant "AI 영상 제작 엔진" as VideoAI
participant "QR코드 생성 API" as QRGen
database "콘텐츠 DB" as ContentDB

== 이벤트스토밍 요소 ==

note over Owner, ContentDB
**Command**: 콘텐츠생성시작, 이미지생성요청, 영상제작요청,
         SNS콘텐츠생성요청, QR포스터생성, 콘텐츠편집, 콘텐츠승인
**Event**: 콘텐츠생성요청됨, 이미지자동생성됨, 영상자동제작됨,
         SNS콘텐츠생성됨, QR코드포스터생성됨, 콘텐츠편집완료됨, 콘텐츠최종승인됨
**Actor**: 소상공인
**External System**: Stable Diffusion, AI 영상 제작 엔진, QR코드 생성 API
**Policy**: 브랜드 일관성 유지, 플랫폼별 최적 해상도 자동 조정,
         저작권 준수 이미지/음악만 사용
end note

== 콘텐츠 생성 시작 ==

Owner -> ContentSystem : **Command**: 콘텐츠생성시작\n(데이터: 이벤트기획안ID, 브랜드컬러, 로고이미지)
activate ContentSystem
ContentSystem --> Owner : **Event**: 콘텐츠생성요청됨

== 이미지 자동 생성 (3종) ==

ContentSystem -> SD : **Command**: 이미지생성요청\n(데이터: 이벤트제목, 경품이미지, 스타일)
activate SD

note right of SD
**Policy**: 브랜드 일관성 유지
- 브랜드 컬러 적용
- 로고 자동 배치
- 3가지 스타일 생성
end note

SD --> ContentSystem : **Event**: 이미지자동생성됨\n(데이터: 이미지 3종 - 심플/화려/트렌디)
deactivate SD

ContentSystem --> Owner : 이미지 미리보기 제공

== AI 영상 제작 (15초) ==

ContentSystem -> VideoAI : **Command**: 영상제작요청\n(데이터: 15초분량, 배경음악선택, 텍스트오버레이)
activate VideoAI

note right of VideoAI
**Policy**: 저작권 준수
음악만 사용
- 로열티 프리 음악
- 자동 자막 생성
- 화면 전환 효과
end note

VideoAI --> ContentSystem : **Event**: 영상자동제작됨\n(데이터: 15초 영상파일, 자막파일)
deactivate VideoAI

ContentSystem --> Owner : 영상 미리보기 제공

== SNS 콘텐츠 생성 ==

ContentSystem -> ContentSystem : **Command**: SNS콘텐츠생성요청\n(데이터: 플랫폼 - 인스타/블로그/카카오, 해시태그)
activate ContentSystem

note right of ContentSystem
**Policy**: 플랫폼별
최적 해상도 자동 조정
- Instagram: 1080x1080
- Blog: 800x600
- Kakao: 800x800
end note

ContentSystem --> ContentSystem : **Event**: SNS콘텐츠생성됨\n(데이터: 플랫폼별 최적화 콘텐츠)
deactivate ContentSystem

== QR 코드 포스터 생성 ==

ContentSystem -> QRGen : **Command**: QR포스터생성\n(데이터: 포스터크기, QR연결URL)
activate QRGen

QRGen --> ContentSystem : **Event**: QR코드포스터생성됨\n(데이터: A4/A3 포스터 PDF, QR코드)
deactivate QRGen

== 콘텐츠 편집 (선택사항) ==

ContentSystem --> Owner : 전체 콘텐츠 미리보기 제공

alt 편집 요청
    Owner -> ContentSystem : **Command**: 콘텐츠편집\n(데이터: 수정사항, 편집위치)
    ContentSystem -> ContentSystem : 편집 처리
    ContentSystem --> Owner : **Event**: 콘텐츠편집완료됨\n(데이터: 수정된 콘텐츠)
end

== 최종 승인 ==

Owner -> ContentSystem : **Command**: 콘텐츠승인\n(데이터: 최종콘텐츠ID)
ContentSystem -> ContentDB : 콘텐츠 저장
activate ContentDB
ContentDB --> ContentSystem : 저장 완료
deactivate ContentDB

ContentSystem --> Owner : **Event**: 콘텐츠최종승인됨\n(데이터: 콘텐츠ID, 다음단계안내)

note over Owner
**콘텐츠 생성 완료 (3분 이내)**
- 이미지 3종 (SNS, 웹, 인쇄용)
- 15초 영상 1개
- QR 코드 포스터
- 다음: 다중 채널 배포로 이동
end note

deactivate ContentSystem

@enduml
