package article import ( "context" "tyapi-server/internal/application/article/dto/commands" appQueries "tyapi-server/internal/application/article/dto/queries" "tyapi-server/internal/application/article/dto/responses" ) // AnnouncementApplicationService 公告应用服务接口 type AnnouncementApplicationService interface { // 公告管理 CreateAnnouncement(ctx context.Context, cmd *commands.CreateAnnouncementCommand) error UpdateAnnouncement(ctx context.Context, cmd *commands.UpdateAnnouncementCommand) error DeleteAnnouncement(ctx context.Context, cmd *commands.DeleteAnnouncementCommand) error GetAnnouncementByID(ctx context.Context, query *appQueries.GetAnnouncementQuery) (*responses.AnnouncementInfoResponse, error) ListAnnouncements(ctx context.Context, query *appQueries.ListAnnouncementQuery) (*responses.AnnouncementListResponse, error) // 公告状态管理 PublishAnnouncement(ctx context.Context, cmd *commands.PublishAnnouncementCommand) error PublishAnnouncementByID(ctx context.Context, announcementID string) error // 通过ID发布公告 (用于定时任务) WithdrawAnnouncement(ctx context.Context, cmd *commands.WithdrawAnnouncementCommand) error ArchiveAnnouncement(ctx context.Context, cmd *commands.ArchiveAnnouncementCommand) error SchedulePublishAnnouncement(ctx context.Context, cmd *commands.SchedulePublishAnnouncementCommand) error UpdateSchedulePublishAnnouncement(ctx context.Context, cmd *commands.UpdateSchedulePublishAnnouncementCommand) error CancelSchedulePublishAnnouncement(ctx context.Context, cmd *commands.CancelSchedulePublishAnnouncementCommand) error // 统计信息 GetAnnouncementStats(ctx context.Context) (*responses.AnnouncementStatsResponse, error) }