외부에서 보이는 타입
호출자는 상태 객체를 직접 만들거나 바꾸지 않는다.
post.add_text()
post.request_review()
post.approve()
post.content()
post.request_review()
post.approve()
post.content()
사용자는 `Post`만 다루지만 내부에서는 `Draft`, `PendingReview`, `Published`가 전환과 공개 여부를 나눠 가진다.
호출자는 상태 객체를 직접 만들거나 바꾸지 않는다.
내용은 저장하지만 아직 노출하지 않는다.
승인 전까지 공개 콘텐츠는 비어 있다.
이 상태에서만 `content`가 실제 글을 반환한다.