package httpapi import ( "context" "calllinesystem/server/internal/domain" "calllinesystem/server/internal/model" ) // displayedExperiencedPeople returns the current project's public daily // metric. A queue session is created lazily on the first ticket, so a nil // session intentionally still returns the configured starting display value. func (s *Server) displayedExperiencedPeople(ctx context.Context, project model.Project, session *model.QueueSession) (int64, error) { var actual int64 if session != nil { current, err := s.queueSessionIsCurrent(project, *session) if err != nil { return 0, err } if !current { return domain.DisplayExperiencedPeople(project.ExperiencedPeopleStart, 0), nil } if err := s.db.WithContext(ctx).Model(&model.QueueTicket{}). Select("COALESCE(sum(party_size), 0)"). Where("project_id = ? AND queue_session_id = ?", project.ID, session.ID). Scan(&actual).Error; err != nil { return 0, err } } return domain.DisplayExperiencedPeople(project.ExperiencedPeopleStart, actual), nil }