Documentation
¶
Index ¶
- type ActionItem
- type AddGeneratedImagesParams
- type AuthState
- type ChangeSubjectParams
- type CheckAliasNameExistsParams
- type CountOpinionsParams
- type CountReportsByTalkSessionParams
- type CountSwipeableOpinionsParams
- type CountTalkSessionsParams
- type CountTalkSessionsRow
- type CreateActionItemParams
- type CreateAuthStateParams
- type CreateDeviceParams
- type CreateDomainEventParams
- type CreateNotificationPreferenceParams
- type CreateOpinionParams
- type CreateOrgUserParams
- type CreateOrganizationAliasParams
- type CreateOrganizationParams
- type CreatePasswordAuthParams
- type CreatePolicyConsentParams
- type CreatePolicyParams
- type CreateReportParams
- type CreateSessionParams
- type CreateTSConsentParams
- type CreateTalkSessionConclusionParams
- type CreateTalkSessionLocationParams
- type CreateTalkSessionParams
- type CreateUserAuthParams
- type CreateUserImageParams
- type CreateUserParams
- type CreateUserStatusChangeLogParams
- type CreateVoteParams
- type DBTX
- type DeactivateOrganizationAliasParams
- type DeleteDeviceByUserIDParams
- type Device
- type DomainEvent
- type EditTalkSessionParams
- type ExistsByDeviceTokenAndPlatformParams
- type FindConsentByUserAndVersionParams
- type FindConsentByUserAndVersionRow
- type FindOpinionsByOpinionIDsRow
- type FindOrgUserByOrganizationIDAndUserIDParams
- type FindOrgUserByOrganizationIDAndUserIDRow
- type FindOrgUserByOrganizationIDRow
- type FindOrgUserByUserIDRow
- type FindOrgUserByUserIDWithOrganizationRow
- type FindOrganizationByCodeRow
- type FindOrganizationByIDRow
- type FindOrganizationByNameRow
- type FindOrganizationUsersWithDetailsRow
- type FindOrganizationsByIDsRow
- type FindPolicyByVersionRow
- type FindReportByIDRow
- type FindReportByOpinionIDRow
- type FindReportByOpinionIDsParams
- type FindReportByOpinionIDsRow
- type FindReportsByTalkSessionParams
- type FindReportsByTalkSessionRow
- type FindTSConsentByTalksessionIdAndUserIdParams
- type FindTSConsentByTalksessionIdAndUserIdRow
- type FindVoteByUserIDAndOpinionIDParams
- type GetActionItemByIDRow
- type GetActionItemsByTalkSessionIDRow
- type GetConclusionByIDRow
- type GetDailyUserStatsParams
- type GetDailyUserStatsRow
- type GetEventsByAggregateIDParams
- type GetFeedbackByReportHistoryIDRow
- type GetGroupInfoByTalkSessionIdRow
- type GetGroupRatioByOpinionIDRow
- type GetLatestPolicyVersionRow
- type GetOpinionByIDParams
- type GetOpinionByIDRow
- type GetOpinionRepliesParams
- type GetOpinionRepliesRow
- type GetOpinionsByRankParams
- type GetOpinionsByRankRow
- type GetOpinionsByTalkSessionIDParams
- type GetOpinionsByTalkSessionIDRow
- type GetOpinionsByUserIDParams
- type GetOpinionsByUserIDRow
- type GetOwnTalkSessionByDisplayIDWithCountParams
- type GetOwnTalkSessionByDisplayIDWithCountRow
- type GetParentOpinionsParams
- type GetParentOpinionsRow
- type GetPasswordAuthByUserIdRow
- type GetRandomOpinionsParams
- type GetRandomOpinionsRow
- type GetReportByTalkSessionIdRow
- type GetRepresentativeOpinionsByTalkSessionIdRow
- type GetRespondTalkSessionByUserIDParams
- type GetRespondTalkSessionByUserIDRow
- type GetSeedOpinionsParams
- type GetSeedOpinionsRow
- type GetTalkSessionByIDRow
- type GetTalkSessionConclusionByIDRow
- type GetUnprocessedEventsParams
- type GetUserAuthByUserIDRow
- type GetUserByIDRow
- type GetUserBySubjectRow
- type GetUserDetailByIDRow
- type GetUserStatsRow
- type GetWeeklyUserStatsParams
- type GetWeeklyUserStatsRow
- type InvalidateDeviceByTokenParams
- type ListTalkSessionsParams
- type ListTalkSessionsRow
- type MarkEventAsFailedParams
- type NotificationHistory
- type NotificationPreference
- type Opinion
- type OpinionReport
- type Organization
- type OrganizationAlias
- type OrganizationUser
- type PasswordAuth
- type PolicyConsent
- type PolicyVersion
- type Queries
- func (q *Queries) AddGeneratedImages(ctx context.Context, arg AddGeneratedImagesParams) error
- func (q *Queries) ChangeSubject(ctx context.Context, arg ChangeSubjectParams) error
- func (q *Queries) CheckAliasNameExists(ctx context.Context, arg CheckAliasNameExistsParams) (bool, error)
- func (q *Queries) CountActiveAliasesByOrganization(ctx context.Context, organizationID uuid.UUID) (int64, error)
- func (q *Queries) CountOpinions(ctx context.Context, arg CountOpinionsParams) (int64, error)
- func (q *Queries) CountReportsByTalkSession(ctx context.Context, arg CountReportsByTalkSessionParams) (int64, error)
- func (q *Queries) CountSwipeableOpinions(ctx context.Context, arg CountSwipeableOpinionsParams) (int64, error)
- func (q *Queries) CountTalkSessions(ctx context.Context, arg CountTalkSessionsParams) (CountTalkSessionsRow, error)
- func (q *Queries) CreateActionItem(ctx context.Context, arg CreateActionItemParams) error
- func (q *Queries) CreateAuthState(ctx context.Context, arg CreateAuthStateParams) (AuthState, error)
- func (q *Queries) CreateDevice(ctx context.Context, arg CreateDeviceParams) (Device, error)
- func (q *Queries) CreateDomainEvent(ctx context.Context, arg CreateDomainEventParams) (DomainEvent, error)
- func (q *Queries) CreateNotificationPreference(ctx context.Context, arg CreateNotificationPreferenceParams) (NotificationPreference, error)
- func (q *Queries) CreateOpinion(ctx context.Context, arg CreateOpinionParams) error
- func (q *Queries) CreateOrgUser(ctx context.Context, arg CreateOrgUserParams) error
- func (q *Queries) CreateOrganization(ctx context.Context, arg CreateOrganizationParams) error
- func (q *Queries) CreateOrganizationAlias(ctx context.Context, arg CreateOrganizationAliasParams) (OrganizationAlias, error)
- func (q *Queries) CreatePasswordAuth(ctx context.Context, arg CreatePasswordAuthParams) error
- func (q *Queries) CreatePolicy(ctx context.Context, arg CreatePolicyParams) error
- func (q *Queries) CreatePolicyConsent(ctx context.Context, arg CreatePolicyConsentParams) error
- func (q *Queries) CreateReport(ctx context.Context, arg CreateReportParams) error
- func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) error
- func (q *Queries) CreateTSConsent(ctx context.Context, arg CreateTSConsentParams) error
- func (q *Queries) CreateTalkSession(ctx context.Context, arg CreateTalkSessionParams) error
- func (q *Queries) CreateTalkSessionConclusion(ctx context.Context, arg CreateTalkSessionConclusionParams) error
- func (q *Queries) CreateTalkSessionLocation(ctx context.Context, arg CreateTalkSessionLocationParams) error
- func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) error
- func (q *Queries) CreateUserAuth(ctx context.Context, arg CreateUserAuthParams) error
- func (q *Queries) CreateUserImage(ctx context.Context, arg CreateUserImageParams) error
- func (q *Queries) CreateUserStatusChangeLog(ctx context.Context, arg CreateUserStatusChangeLogParams) error
- func (q *Queries) CreateVote(ctx context.Context, arg CreateVoteParams) error
- func (q *Queries) DeactivateOrganizationAlias(ctx context.Context, arg DeactivateOrganizationAliasParams) error
- func (q *Queries) DeactivateSessions(ctx context.Context, userID uuid.UUID) error
- func (q *Queries) DeleteAuthState(ctx context.Context, state string) error
- func (q *Queries) DeleteDevice(ctx context.Context, deviceID uuid.UUID) error
- func (q *Queries) DeleteDeviceByUserID(ctx context.Context, arg DeleteDeviceByUserIDParams) error
- func (q *Queries) DeleteDevicesByUserID(ctx context.Context, userID uuid.UUID) error
- func (q *Queries) DeleteExpiredAuthStates(ctx context.Context) error
- func (q *Queries) DeletePasswordAuth(ctx context.Context, userID uuid.UUID) error
- func (q *Queries) EditTalkSession(ctx context.Context, arg EditTalkSessionParams) error
- func (q *Queries) ExistsByDeviceTokenAndPlatform(ctx context.Context, arg ExistsByDeviceTokenAndPlatformParams) (bool, error)
- func (q *Queries) FindActiveSessionsByUserID(ctx context.Context, userID uuid.UUID) ([]Session, error)
- func (q *Queries) FindConsentByUserAndVersion(ctx context.Context, arg FindConsentByUserAndVersionParams) (FindConsentByUserAndVersionRow, error)
- func (q *Queries) FindOpinionsByOpinionIDs(ctx context.Context, opinionIds []uuid.UUID) ([]FindOpinionsByOpinionIDsRow, error)
- func (q *Queries) FindOrgUserByOrganizationID(ctx context.Context, organizationID uuid.UUID) ([]FindOrgUserByOrganizationIDRow, error)
- func (q *Queries) FindOrgUserByOrganizationIDAndUserID(ctx context.Context, arg FindOrgUserByOrganizationIDAndUserIDParams) (FindOrgUserByOrganizationIDAndUserIDRow, error)
- func (q *Queries) FindOrgUserByUserID(ctx context.Context, userID uuid.UUID) ([]FindOrgUserByUserIDRow, error)
- func (q *Queries) FindOrgUserByUserIDWithOrganization(ctx context.Context, userID uuid.UUID) ([]FindOrgUserByUserIDWithOrganizationRow, error)
- func (q *Queries) FindOrganizationByCode(ctx context.Context, code string) (FindOrganizationByCodeRow, error)
- func (q *Queries) FindOrganizationByID(ctx context.Context, organizationID uuid.UUID) (FindOrganizationByIDRow, error)
- func (q *Queries) FindOrganizationByName(ctx context.Context, name string) (FindOrganizationByNameRow, error)
- func (q *Queries) FindOrganizationUsersWithDetails(ctx context.Context, organizationID uuid.UUID) ([]FindOrganizationUsersWithDetailsRow, error)
- func (q *Queries) FindOrganizationsByIDs(ctx context.Context, dollar_1 []uuid.UUID) ([]FindOrganizationsByIDsRow, error)
- func (q *Queries) FindPolicyByVersion(ctx context.Context, version string) (FindPolicyByVersionRow, error)
- func (q *Queries) FindReportByID(ctx context.Context, talkSessionID uuid.UUID) (FindReportByIDRow, error)
- func (q *Queries) FindReportByOpinionID(ctx context.Context, opinionID uuid.NullUUID) ([]FindReportByOpinionIDRow, error)
- func (q *Queries) FindReportByOpinionIDs(ctx context.Context, arg FindReportByOpinionIDsParams) ([]FindReportByOpinionIDsRow, error)
- func (q *Queries) FindReportsByTalkSession(ctx context.Context, arg FindReportsByTalkSessionParams) ([]FindReportsByTalkSessionRow, error)
- func (q *Queries) FindSessionBySessionID(ctx context.Context, sessionID uuid.UUID) (Session, error)
- func (q *Queries) FindTSConsentByTalksessionIdAndUserId(ctx context.Context, arg FindTSConsentByTalksessionIdAndUserIdParams) (FindTSConsentByTalksessionIdAndUserIdRow, error)
- func (q *Queries) FindUserStatusChangeLogsByUserID(ctx context.Context, userID uuid.UUID) ([]UserStatusChangeLog, error)
- func (q *Queries) FindVoteByUserIDAndOpinionID(ctx context.Context, arg FindVoteByUserIDAndOpinionIDParams) (Vote, error)
- func (q *Queries) GetActionItemByID(ctx context.Context, actionItemID uuid.UUID) (GetActionItemByIDRow, error)
- func (q *Queries) GetActionItemsByTalkSessionID(ctx context.Context, talkSessionID uuid.UUID) ([]GetActionItemsByTalkSessionIDRow, error)
- func (q *Queries) GetActiveDevicesByUserID(ctx context.Context, userID uuid.UUID) ([]Device, error)
- func (q *Queries) GetActiveDevicesByUserIDs(ctx context.Context, dollar_1 []uuid.UUID) ([]Device, error)
- func (q *Queries) GetActiveOrganizationAliases(ctx context.Context, organizationID uuid.UUID) ([]OrganizationAlias, error)
- func (q *Queries) GetAllActiveDevices(ctx context.Context) ([]Device, error)
- func (q *Queries) GetAllTalkSessionCount(ctx context.Context) (int64, error)
- func (q *Queries) GetAuthState(ctx context.Context, state string) (AuthState, error)
- func (q *Queries) GetConclusionByID(ctx context.Context, talkSessionID uuid.UUID) (GetConclusionByIDRow, error)
- func (q *Queries) GetDailyUserStats(ctx context.Context, arg GetDailyUserStatsParams) ([]GetDailyUserStatsRow, error)
- func (q *Queries) GetDeviceByID(ctx context.Context, deviceID uuid.UUID) (Device, error)
- func (q *Queries) GetDeviceByToken(ctx context.Context, deviceToken string) (Device, error)
- func (q *Queries) GetDevicesByUserID(ctx context.Context, userID uuid.UUID) ([]Device, error)
- func (q *Queries) GetEventsByAggregateID(ctx context.Context, arg GetEventsByAggregateIDParams) ([]DomainEvent, error)
- func (q *Queries) GetFeedbackByReportHistoryID(ctx context.Context, talkSessionReportHistoryID uuid.UUID) ([]GetFeedbackByReportHistoryIDRow, error)
- func (q *Queries) GetGeneratedImages(ctx context.Context, dollar_1 uuid.UUID) (TalkSessionGeneratedImage, error)
- func (q *Queries) GetGroupInfoByTalkSessionId(ctx context.Context, talkSessionID uuid.UUID) ([]GetGroupInfoByTalkSessionIdRow, error)
- func (q *Queries) GetGroupListByTalkSessionId(ctx context.Context, talkSessionID uuid.UUID) ([]int32, error)
- func (q *Queries) GetGroupRatioByOpinionID(ctx context.Context, opinionID uuid.NullUUID) ([]GetGroupRatioByOpinionIDRow, error)
- func (q *Queries) GetLatestPolicyVersion(ctx context.Context) (GetLatestPolicyVersionRow, error)
- func (q *Queries) GetNotificationPreference(ctx context.Context, userID uuid.UUID) (NotificationPreference, error)
- func (q *Queries) GetNotificationPreferencesByUserIDs(ctx context.Context, dollar_1 []uuid.UUID) ([]NotificationPreference, error)
- func (q *Queries) GetOpinionByID(ctx context.Context, arg GetOpinionByIDParams) (GetOpinionByIDRow, error)
- func (q *Queries) GetOpinionReplies(ctx context.Context, arg GetOpinionRepliesParams) ([]GetOpinionRepliesRow, error)
- func (q *Queries) GetOpinionsByRank(ctx context.Context, arg GetOpinionsByRankParams) ([]GetOpinionsByRankRow, error)
- func (q *Queries) GetOpinionsByTalkSessionID(ctx context.Context, arg GetOpinionsByTalkSessionIDParams) ([]GetOpinionsByTalkSessionIDRow, error)
- func (q *Queries) GetOpinionsByUserID(ctx context.Context, arg GetOpinionsByUserIDParams) ([]GetOpinionsByUserIDRow, error)
- func (q *Queries) GetOrganizationAliasById(ctx context.Context, aliasID uuid.UUID) (OrganizationAlias, error)
- func (q *Queries) GetOwnTalkSessionByDisplayIDWithCount(ctx context.Context, arg GetOwnTalkSessionByDisplayIDWithCountParams) ([]GetOwnTalkSessionByDisplayIDWithCountRow, error)
- func (q *Queries) GetParentOpinions(ctx context.Context, arg GetParentOpinionsParams) ([]GetParentOpinionsRow, error)
- func (q *Queries) GetPasswordAuthByUserId(ctx context.Context, userID uuid.UUID) (GetPasswordAuthByUserIdRow, error)
- func (q *Queries) GetRandomOpinions(ctx context.Context, arg GetRandomOpinionsParams) ([]GetRandomOpinionsRow, error)
- func (q *Queries) GetReportByTalkSessionId(ctx context.Context, talkSessionID uuid.UUID) (GetReportByTalkSessionIdRow, error)
- func (q *Queries) GetRepresentativeOpinionsByTalkSessionId(ctx context.Context, talkSessionID uuid.UUID) ([]GetRepresentativeOpinionsByTalkSessionIdRow, error)
- func (q *Queries) GetRespondTalkSessionByUserID(ctx context.Context, arg GetRespondTalkSessionByUserIDParams) ([]GetRespondTalkSessionByUserIDRow, error)
- func (q *Queries) GetSeedOpinions(ctx context.Context, arg GetSeedOpinionsParams) ([]GetSeedOpinionsRow, error)
- func (q *Queries) GetTalkSessionByID(ctx context.Context, talkSessionID uuid.UUID) (GetTalkSessionByIDRow, error)
- func (q *Queries) GetTalkSessionConclusionByID(ctx context.Context, talkSessionID uuid.UUID) (GetTalkSessionConclusionByIDRow, error)
- func (q *Queries) GetTalkSessionParticipants(ctx context.Context, talkSessionID uuid.UUID) ([]uuid.UUID, error)
- func (q *Queries) GetUnprocessedEndedSessions(ctx context.Context, limit int32) ([]TalkSession, error)
- func (q *Queries) GetUnprocessedEvents(ctx context.Context, arg GetUnprocessedEventsParams) ([]DomainEvent, error)
- func (q *Queries) GetUserAuthByUserID(ctx context.Context, userID uuid.UUID) (GetUserAuthByUserIDRow, error)
- func (q *Queries) GetUserByID(ctx context.Context, userID uuid.UUID) (GetUserByIDRow, error)
- func (q *Queries) GetUserBySubject(ctx context.Context, subject string) (GetUserBySubjectRow, error)
- func (q *Queries) GetUserDemographicByUserID(ctx context.Context, userID uuid.UUID) (UserDemographic, error)
- func (q *Queries) GetUserDetailByID(ctx context.Context, userID uuid.UUID) (GetUserDetailByIDRow, error)
- func (q *Queries) GetUserStats(ctx context.Context) (GetUserStatsRow, error)
- func (q *Queries) GetWeeklyUserStats(ctx context.Context, arg GetWeeklyUserStatsParams) ([]GetWeeklyUserStatsRow, error)
- func (q *Queries) InvalidateDevice(ctx context.Context, deviceID uuid.UUID) error
- func (q *Queries) InvalidateDeviceByToken(ctx context.Context, arg InvalidateDeviceByTokenParams) error
- func (q *Queries) ListTalkSessions(ctx context.Context, arg ListTalkSessionsParams) ([]ListTalkSessionsRow, error)
- func (q *Queries) MarkEventAsFailed(ctx context.Context, arg MarkEventAsFailedParams) (DomainEvent, error)
- func (q *Queries) MarkEventAsProcessed(ctx context.Context, id uuid.UUID) (DomainEvent, error)
- func (q *Queries) ReactivateUser(ctx context.Context, userID uuid.UUID) error
- func (q *Queries) SaveReportFeedback(ctx context.Context, arg SaveReportFeedbackParams) error
- func (q *Queries) UpdateActionItem(ctx context.Context, arg UpdateActionItemParams) error
- func (q *Queries) UpdateDevice(ctx context.Context, arg UpdateDeviceParams) (Device, error)
- func (q *Queries) UpdateDeviceActivity(ctx context.Context, deviceID uuid.UUID) error
- func (q *Queries) UpdateNotificationPreference(ctx context.Context, arg UpdateNotificationPreferenceParams) (NotificationPreference, error)
- func (q *Queries) UpdateOrCreateUserDemographic(ctx context.Context, arg UpdateOrCreateUserDemographicParams) error
- func (q *Queries) UpdateOrganization(ctx context.Context, arg UpdateOrganizationParams) error
- func (q *Queries) UpdatePasswordAuth(ctx context.Context, arg UpdatePasswordAuthParams) error
- func (q *Queries) UpdateReportStatus(ctx context.Context, arg UpdateReportStatusParams) error
- func (q *Queries) UpdateSequencesByActionItemID(ctx context.Context, arg UpdateSequencesByActionItemIDParams) error
- func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) error
- func (q *Queries) UpdateTalkSessionConclusion(ctx context.Context, arg UpdateTalkSessionConclusionParams) error
- func (q *Queries) UpdateTalkSessionHideReport(ctx context.Context, arg UpdateTalkSessionHideReportParams) error
- func (q *Queries) UpdateTalkSessionLocation(ctx context.Context, arg UpdateTalkSessionLocationParams) error
- func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) error
- func (q *Queries) UpdateUserEmailAndSubject(ctx context.Context, arg UpdateUserEmailAndSubjectParams) error
- func (q *Queries) UpdateVote(ctx context.Context, arg UpdateVoteParams) error
- func (q *Queries) UpsertDevice(ctx context.Context, arg UpsertDeviceParams) (Device, error)
- func (q *Queries) UpsertNotificationPreference(ctx context.Context, arg UpsertNotificationPreferenceParams) (NotificationPreference, error)
- func (q *Queries) UserFindByDisplayID(ctx context.Context, displayID sql.NullString) (UserFindByDisplayIDRow, error)
- func (q *Queries) VerifyUser(ctx context.Context, userID uuid.UUID) error
- func (q *Queries) WithTx(tx *sql.Tx) *Queries
- func (q *Queries) WithdrawUser(ctx context.Context, arg WithdrawUserParams) error
- type ReportFeedback
- type RepresentativeOpinion
- type SaveReportFeedbackParams
- type Session
- type TalkSession
- type TalkSessionConclusion
- type TalkSessionGeneratedImage
- type TalkSessionLocation
- type TalkSessionReport
- type TalkSessionReportHistory
- type TalksessionConsent
- type UpdateActionItemParams
- type UpdateDeviceParams
- type UpdateNotificationPreferenceParams
- type UpdateOrCreateUserDemographicParams
- type UpdateOrganizationParams
- type UpdatePasswordAuthParams
- type UpdateReportStatusParams
- type UpdateSequencesByActionItemIDParams
- type UpdateSessionParams
- type UpdateTalkSessionConclusionParams
- type UpdateTalkSessionHideReportParams
- type UpdateTalkSessionLocationParams
- type UpdateUserEmailAndSubjectParams
- type UpdateUserParams
- type UpdateVoteParams
- type UpsertDeviceParams
- type UpsertNotificationPreferenceParams
- type User
- type UserAuth
- type UserDemographic
- type UserFindByDisplayIDRow
- type UserGroupDimensionReductionInfo
- type UserGroupInfo
- type UserImage
- type UserStatusChangeLog
- type Vote
- type WithdrawUserParams
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActionItem ¶
type ChangeSubjectParams ¶
type CountOpinionsParams ¶
type CountReportsByTalkSessionParams ¶
type CountReportsByTalkSessionParams struct {
TalkSessionID uuid.NullUUID
Status sql.NullString
}
type CountTalkSessionsParams ¶
type CountTalkSessionsParams struct {
Status sql.NullString
UserID uuid.NullUUID
Theme sql.NullString
}
type CountTalkSessionsRow ¶
type CreateActionItemParams ¶
type CreateAuthStateParams ¶
type CreateDeviceParams ¶
type CreateDomainEventParams ¶
type CreateOpinionParams ¶
type CreateOrgUserParams ¶
type CreatePolicyParams ¶
type CreateReportParams ¶
type CreateSessionParams ¶
type CreateTSConsentParams ¶
type CreateTSConsentParams struct {
TalksessionID uuid.UUID
UserID uuid.UUID
ConsentedAt time.Time
Restrictions talksession.Restrictions
}
type CreateTalkSessionParams ¶
type CreateTalkSessionParams struct {
TalkSessionID uuid.UUID
Theme string
Description sql.NullString
ThumbnailUrl sql.NullString
OwnerID uuid.UUID
ScheduledEndTime time.Time
CreatedAt time.Time
City sql.NullString
Prefecture sql.NullString
Restrictions talksession.Restrictions
HideReport sql.NullBool
OrganizationID uuid.NullUUID
OrganizationAliasID uuid.NullUUID
HideTop bool
}
type CreateUserAuthParams ¶
type CreateUserImageParams ¶
type CreateUserParams ¶
type CreateVoteParams ¶
type DomainEvent ¶
type EditTalkSessionParams ¶
type EditTalkSessionParams struct {
TalkSessionID uuid.UUID
Theme string
Description sql.NullString
ScheduledEndTime time.Time
ThumbnailUrl sql.NullString
City sql.NullString
Prefecture sql.NullString
Restrictions talksession.Restrictions
HideReport sql.NullBool
OrganizationID uuid.NullUUID
OrganizationAliasID uuid.NullUUID
HideTop bool
}
type FindConsentByUserAndVersionRow ¶
type FindConsentByUserAndVersionRow struct {
PolicyConsent PolicyConsent
}
type FindOrgUserByOrganizationIDAndUserIDRow ¶
type FindOrgUserByOrganizationIDAndUserIDRow struct {
OrganizationUser OrganizationUser
}
type FindOrgUserByOrganizationIDRow ¶
type FindOrgUserByOrganizationIDRow struct {
OrganizationUser OrganizationUser
}
type FindOrgUserByUserIDRow ¶
type FindOrgUserByUserIDRow struct {
OrganizationUser OrganizationUser
}
type FindOrgUserByUserIDWithOrganizationRow ¶
type FindOrgUserByUserIDWithOrganizationRow struct {
User User
OrganizationUser OrganizationUser
Organization Organization
}
type FindOrganizationByCodeRow ¶
type FindOrganizationByCodeRow struct {
Organization Organization
}
type FindOrganizationByIDRow ¶
type FindOrganizationByIDRow struct {
Organization Organization
}
type FindOrganizationByNameRow ¶
type FindOrganizationByNameRow struct {
Organization Organization
}
type FindOrganizationUsersWithDetailsRow ¶
type FindOrganizationUsersWithDetailsRow struct {
OrganizationUser OrganizationUser
User User
Organization Organization
}
type FindOrganizationsByIDsRow ¶
type FindOrganizationsByIDsRow struct {
Organization Organization
}
type FindPolicyByVersionRow ¶
type FindPolicyByVersionRow struct {
PolicyVersion PolicyVersion
}
type FindReportByIDRow ¶
type FindReportByOpinionIDRow ¶
type FindReportByOpinionIDRow struct {
OpinionReport OpinionReport
}
type FindReportByOpinionIDsRow ¶
type FindReportByOpinionIDsRow struct {
OpinionReport OpinionReport
Opinion Opinion
}
type FindReportsByTalkSessionParams ¶
type FindReportsByTalkSessionParams struct {
TalkSessionID uuid.NullUUID
Status sql.NullString
}
type FindReportsByTalkSessionRow ¶
type FindReportsByTalkSessionRow struct {
OpinionReport OpinionReport
}
type FindTSConsentByTalksessionIdAndUserIdRow ¶
type FindTSConsentByTalksessionIdAndUserIdRow struct {
TalksessionConsent TalksessionConsent
}
type GetActionItemByIDRow ¶
type GetConclusionByIDRow ¶
type GetConclusionByIDRow struct {
TalkSessionConclusion TalkSessionConclusion
User User
}
type GetDailyUserStatsParams ¶
type GetDailyUserStatsRow ¶
type GetGroupInfoByTalkSessionIdRow ¶
type GetGroupInfoByTalkSessionIdRow struct {
PosX float64
PosY float64
GroupID int32
PerimeterIndex sql.NullInt32
DisplayID sql.NullString
DisplayName sql.NullString
IconUrl sql.NullString
UserID uuid.UUID
}
type GetGroupRatioByOpinionIDRow ¶
type GetGroupRatioByOpinionIDRow struct {
RepresentativeOpinion RepresentativeOpinion
}
type GetLatestPolicyVersionRow ¶
type GetLatestPolicyVersionRow struct {
PolicyVersion PolicyVersion
}
type GetOpinionByIDParams ¶
type GetOpinionByIDRow ¶
type GetOpinionRepliesParams ¶
type GetOpinionRepliesRow ¶
type GetOpinionsByRankParams ¶
type GetOpinionsByRankRow ¶
type GetOpinionsByUserIDRow ¶
type GetOwnTalkSessionByDisplayIDWithCountParams ¶
type GetOwnTalkSessionByDisplayIDWithCountParams struct {
Offset sql.NullInt32
Limit sql.NullInt32
DisplayID string
Status sql.NullString
Theme sql.NullString
}
type GetParentOpinionsParams ¶
type GetParentOpinionsRow ¶
type GetPasswordAuthByUserIdRow ¶
type GetPasswordAuthByUserIdRow struct {
PasswordAuth PasswordAuth
}
type GetRandomOpinionsParams ¶
type GetRandomOpinionsRow ¶
type GetRepresentativeOpinionsByTalkSessionIdRow ¶
type GetRepresentativeOpinionsByTalkSessionIdRow struct {
RepresentativeOpinion RepresentativeOpinion
Opinion Opinion
User User
ReplyCount int64
}
type GetRespondTalkSessionByUserIDParams ¶
type GetRespondTalkSessionByUserIDParams struct {
Limit int32
Offset int32
UserID uuid.NullUUID
Status sql.NullString
Theme sql.NullString
}
type GetSeedOpinionsParams ¶
type GetSeedOpinionsRow ¶
type GetTalkSessionByIDRow ¶
type GetUserAuthByUserIDRow ¶
type GetUserAuthByUserIDRow struct {
UserAuth UserAuth
}
type GetUserByIDRow ¶
type GetUserByIDRow struct {
User User
}
type GetUserBySubjectRow ¶
type GetUserDetailByIDRow ¶
type GetUserDetailByIDRow struct {
User User
UserAuth UserAuth
UserDemographic UserDemographic
}
type GetUserStatsRow ¶
type GetWeeklyUserStatsRow ¶
type ListTalkSessionsParams ¶
type ListTalkSessionsParams struct {
Limit int32
Offset int32
Latitude sql.NullFloat64
Longitude sql.NullFloat64
Status sql.NullString
Theme sql.NullString
SortKey sql.NullString
}
type ListTalkSessionsRow ¶
type MarkEventAsFailedParams ¶
type MarkEventAsFailedParams struct {
ID uuid.UUID
FailureReason sql.NullString
}
type NotificationHistory ¶
type NotificationPreference ¶
type OpinionReport ¶
type Organization ¶
type OrganizationAlias ¶
type OrganizationUser ¶
type PasswordAuth ¶
type PolicyConsent ¶
type PolicyVersion ¶
type Queries ¶
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) AddGeneratedImages ¶
func (q *Queries) AddGeneratedImages(ctx context.Context, arg AddGeneratedImagesParams) error
AddGeneratedImages
INSERT INTO talk_session_generated_images (talk_session_id, wordmap_url, tsnc_url) VALUES ($1, $2, $3) ON CONFLICT (talk_session_id) DO UPDATE SET wordmap_url = $2, tsnc_url = $3, updated_at = NOW()
func (*Queries) ChangeSubject ¶
func (q *Queries) ChangeSubject(ctx context.Context, arg ChangeSubjectParams) error
ChangeSubject
UPDATE "user_auths" SET subject = $2 WHERE user_id = $1
func (*Queries) CheckAliasNameExists ¶
func (q *Queries) CheckAliasNameExists(ctx context.Context, arg CheckAliasNameExistsParams) (bool, error)
CheckAliasNameExists
SELECT EXISTS(
SELECT 1 FROM organization_aliases
WHERE organization_id = $1 AND alias_name = $2 AND deactivated_at IS NULL
)
func (*Queries) CountActiveAliasesByOrganization ¶
func (q *Queries) CountActiveAliasesByOrganization(ctx context.Context, organizationID uuid.UUID) (int64, error)
CountActiveAliasesByOrganization
SELECT COUNT(*) FROM organization_aliases WHERE organization_id = $1 AND deactivated_at IS NULL
func (*Queries) CountOpinions ¶
CountOpinions
SELECT
COUNT(opinions.*) AS opinion_count
FROM opinions
WHERE
CASE
WHEN $1::uuid IS NOT NULL THEN opinions.user_id = $1::uuid
ELSE TRUE
END
AND
CASE
WHEN $2::uuid IS NOT NULL THEN opinions.talk_session_id = $2::uuid
ELSE TRUE
END
AND
CASE
WHEN $3::uuid IS NOT NULL THEN opinions.parent_opinion_id = $3::uuid
ELSE TRUE
END
func (*Queries) CountReportsByTalkSession ¶
func (q *Queries) CountReportsByTalkSession(ctx context.Context, arg CountReportsByTalkSessionParams) (int64, error)
CountReportsByTalkSession
SELECT
COUNT(*) AS count
FROM
opinion_reports
WHERE
talk_session_id = $1::uuid
AND
CASE
WHEN $2::text IS NOT NULL THEN opinion_reports.status = $2::text
ELSE TRUE
END
func (*Queries) CountSwipeableOpinions ¶
func (q *Queries) CountSwipeableOpinions(ctx context.Context, arg CountSwipeableOpinionsParams) (int64, error)
指定されたユーザーが投票していない意見のみを取得 通報された意見を除外 トークセッションに紐づく意見のみを取得
SELECT COUNT(opinions.opinion_id) AS random_opinion_count
FROM opinions
LEFT JOIN (
SELECT opinions.opinion_id
FROM opinions
LEFT JOIN votes
ON opinions.opinion_id = votes.opinion_id
AND votes.user_id = $1
GROUP BY opinions.opinion_id
HAVING COUNT(votes.vote_id) = 0
) vote_count ON opinions.opinion_id = vote_count.opinion_id
LEFT JOIN (
SELECT DISTINCT opinion_reports.opinion_id, opinion_reports.status
FROM opinion_reports
WHERE opinion_reports.talk_session_id = $2
) opr ON opr.opinion_id = opinions.opinion_id
WHERE opinions.talk_session_id = $2
AND vote_count.opinion_id = opinions.opinion_id
AND opinions.parent_opinion_id IS NULL
AND (opr.opinion_id IS NULL OR opr.status != 'deleted')
func (*Queries) CountTalkSessions ¶
func (q *Queries) CountTalkSessions(ctx context.Context, arg CountTalkSessionsParams) (CountTalkSessionsRow, error)
talk_session_locationsがない場合も考慮
SELECT
COUNT(DISTINCT talk_sessions.talk_session_id) AS talk_session_count,
$1::text AS status
FROM talk_sessions
LEFT JOIN talk_session_locations
ON talk_sessions.talk_session_id = talk_session_locations.talk_session_id
LEFT JOIN votes
ON votes.talk_session_id = talk_sessions.talk_session_id
WHERE
talk_sessions.hide_top = FALSE AND
CASE
WHEN $2::uuid IS NOT NULL
THEN votes.user_id = $2::uuid
ELSE TRUE
END
AND
CASE $1::text
WHEN 'open' THEN talk_sessions.scheduled_end_time > now()
WHEN 'finished' THEN talk_sessions.scheduled_end_time <= now()
ELSE TRUE
END
AND
CASE
WHEN $3::text IS NOT NULL
THEN talk_sessions.theme LIKE '%' || $3::text || '%'
ELSE TRUE
END
func (*Queries) CreateActionItem ¶
func (q *Queries) CreateActionItem(ctx context.Context, arg CreateActionItemParams) error
CreateActionItem
INSERT INTO action_items (
action_item_id,
talk_session_id,
sequence,
content,
status,
created_at,
updated_at
) VALUES ($1, $2, $3, $4, $5, $6, $7)
func (*Queries) CreateAuthState ¶
func (q *Queries) CreateAuthState(ctx context.Context, arg CreateAuthStateParams) (AuthState, error)
CreateAuthState
INSERT INTO auth_states (
state,
provider,
redirect_url,
expires_at,
registration_url,
organization_id
) VALUES (
$1,
$2,
$3,
$4,
$5,
$6
) RETURNING id, state, provider, redirect_url, created_at, expires_at, registration_url, organization_id
func (*Queries) CreateDevice ¶
CreateDevice
INSERT INTO devices (
device_id,
user_id,
device_token,
platform,
device_name,
app_version,
os_version,
enabled,
created_at,
updated_at
) VALUES (
$1,
$2,
$3,
$4,
$5,
$6,
$7,
$8,
$9,
$10
) RETURNING device_id, user_id, device_token, platform, enabled, created_at, updated_at, device_name, app_version, os_version, last_active_at
func (*Queries) CreateDomainEvent ¶
func (q *Queries) CreateDomainEvent(ctx context.Context, arg CreateDomainEventParams) (DomainEvent, error)
CreateDomainEvent
INSERT INTO domain_events (
id,
event_type,
event_data,
aggregate_id,
aggregate_type,
status,
occurred_at,
retry_count
) VALUES (
$1,
$2,
$3,
$4,
$5,
$6,
$7,
$8
) RETURNING id, event_type, event_data, aggregate_id, aggregate_type, status, occurred_at, processed_at, failed_at, failure_reason, retry_count
func (*Queries) CreateNotificationPreference ¶
func (q *Queries) CreateNotificationPreference(ctx context.Context, arg CreateNotificationPreferenceParams) (NotificationPreference, error)
CreateNotificationPreference
INSERT INTO notification_preferences (
user_id,
push_notification_enabled
) VALUES (
$1, $2
) RETURNING id, user_id, push_notification_enabled, created_at, updated_at
func (*Queries) CreateOpinion ¶
func (q *Queries) CreateOpinion(ctx context.Context, arg CreateOpinionParams) error
CreateOpinion
INSERT INTO opinions (
opinion_id,
talk_session_id,
user_id,
parent_opinion_id,
title,
content,
reference_url,
picture_url,
created_at
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
func (*Queries) CreateOrgUser ¶
func (q *Queries) CreateOrgUser(ctx context.Context, arg CreateOrgUserParams) error
CreateOrgUser
INSERT INTO organization_users (
organization_user_id,
user_id,
organization_id,
role,
created_at,
updated_at
) VALUES ($1, $2, $3, $4, $5, $6)
func (*Queries) CreateOrganization ¶
func (q *Queries) CreateOrganization(ctx context.Context, arg CreateOrganizationParams) error
CreateOrganization
INSERT INTO organizations (
organization_id,
organization_type,
name,
owner_id,
code,
icon_url
) VALUES ($1, $2, $3, $4, $5, $6)
func (*Queries) CreateOrganizationAlias ¶
func (q *Queries) CreateOrganizationAlias(ctx context.Context, arg CreateOrganizationAliasParams) (OrganizationAlias, error)
CreateOrganizationAlias
INSERT INTO organization_aliases (
alias_id,
organization_id,
alias_name,
created_by
) VALUES ($1, $2, $3, $4)
RETURNING alias_id, organization_id, alias_name, created_at, updated_at, created_by, deactivated_at, deactivated_by
func (*Queries) CreatePasswordAuth ¶
func (q *Queries) CreatePasswordAuth(ctx context.Context, arg CreatePasswordAuthParams) error
CreatePasswordAuth
INSERT INTO password_auth ( password_auth_id, user_id, password_hash, salt, required_password_change, last_changed, created_at, updated_at ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
func (*Queries) CreatePolicy ¶
func (q *Queries) CreatePolicy(ctx context.Context, arg CreatePolicyParams) error
CreatePolicy
INSERT INTO policy_versions (
version,
created_at
) VALUES ($1, $2)
func (*Queries) CreatePolicyConsent ¶
func (q *Queries) CreatePolicyConsent(ctx context.Context, arg CreatePolicyConsentParams) error
CreatePolicyConsent
INSERT INTO policy_consents (
policy_consent_id,
user_id,
policy_version,
consented_at,
ip_address,
user_agent
) VALUES ($1, $2, $3, $4, $5, $6)
func (*Queries) CreateReport ¶
func (q *Queries) CreateReport(ctx context.Context, arg CreateReportParams) error
CreateReport
INSERT INTO opinion_reports (
opinion_report_id,
opinion_id,
talk_session_id,
reporter_id,
reason,
status,
created_at,
updated_at
) VALUES (
$1,
$2,
$3,
$4,
$5,
$6,
NOW(),
NOW()
) RETURNING opinion_report_id, opinion_id, talk_session_id, reporter_id, reason, status, created_at, updated_at, reason_text
func (*Queries) CreateSession ¶
func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) error
CreateSession
INSERT INTO sessions (session_id, user_id, provider, session_status, created_at, expires_at, last_activity_at, organization_id) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
func (*Queries) CreateTSConsent ¶
func (q *Queries) CreateTSConsent(ctx context.Context, arg CreateTSConsentParams) error
CreateTSConsent
INSERT INTO talksession_consents (
talksession_id,
user_id,
consented_at,
restrictions
) VALUES (
$1,
$2,
$3,
$4
)
func (*Queries) CreateTalkSession ¶
func (q *Queries) CreateTalkSession(ctx context.Context, arg CreateTalkSessionParams) error
CreateTalkSession
INSERT INTO talk_sessions (talk_session_id, theme, description, thumbnail_url, owner_id, scheduled_end_time, created_at, city, prefecture, restrictions, hide_report, organization_id, organization_alias_id, hide_top) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)
func (*Queries) CreateTalkSessionConclusion ¶
func (q *Queries) CreateTalkSessionConclusion(ctx context.Context, arg CreateTalkSessionConclusionParams) error
CreateTalkSessionConclusion
INSERT INTO talk_session_conclusions (
talk_session_id,
content,
created_by
) VALUES ($1, $2, $3)
func (*Queries) CreateTalkSessionLocation ¶
func (q *Queries) CreateTalkSessionLocation(ctx context.Context, arg CreateTalkSessionLocationParams) error
CreateTalkSessionLocation
INSERT INTO talk_session_locations (talk_session_id, location) VALUES ($1, ST_GeographyFromText($2))
func (*Queries) CreateUser ¶
func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) error
CreateUser
INSERT INTO users (user_id, created_at, email, email_verified) VALUES ($1, $2, $3, $4)
func (*Queries) CreateUserAuth ¶
func (q *Queries) CreateUserAuth(ctx context.Context, arg CreateUserAuthParams) error
CreateUserAuth
INSERT INTO user_auths (user_auth_id, user_id, provider, subject, created_at, is_verified) VALUES ($1, $2, $3, $4, $5, false)
func (*Queries) CreateUserImage ¶
func (q *Queries) CreateUserImage(ctx context.Context, arg CreateUserImageParams) error
CreateUserImage
INSERT INTO user_images (
user_images_id,
user_id,
key,
width,
height,
extension,
archived,
url
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
func (*Queries) CreateUserStatusChangeLog ¶
func (q *Queries) CreateUserStatusChangeLog(ctx context.Context, arg CreateUserStatusChangeLogParams) error
CreateUserStatusChangeLog
INSERT INTO user_status_change_logs (
user_status_change_logs_id,
user_id,
status,
reason,
changed_at,
changed_by,
ip_address,
user_agent,
additional_data
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
func (*Queries) CreateVote ¶
func (q *Queries) CreateVote(ctx context.Context, arg CreateVoteParams) error
CreateVote
INSERT INTO votes (
vote_id,
opinion_id,
talk_session_id,
user_id,
vote_type,
created_at
) VALUES ($1, $2, $3, $4, $5, $6)
func (*Queries) DeactivateOrganizationAlias ¶
func (q *Queries) DeactivateOrganizationAlias(ctx context.Context, arg DeactivateOrganizationAliasParams) error
DeactivateOrganizationAlias
UPDATE organization_aliases
SET deactivated_at = CURRENT_TIMESTAMP,
deactivated_by = $2,
updated_at = CURRENT_TIMESTAMP
WHERE alias_id = $1 AND deactivated_at IS NULL
func (*Queries) DeactivateSessions ¶
DeactivateSessions
UPDATE sessions
SET session_status = 1, last_activity_at = NOW()
WHERE session_id IN (
SELECT
session_id
FROM sessions
WHERE sessions.user_id = $1
AND session_status = 0
)
func (*Queries) DeleteDeviceByUserID ¶
func (q *Queries) DeleteDeviceByUserID(ctx context.Context, arg DeleteDeviceByUserIDParams) error
DeleteDeviceByUserID
DELETE FROM devices WHERE device_id = $1 AND user_id = $2
func (*Queries) DeleteDevicesByUserID ¶
DeleteDevicesByUserID
DELETE FROM devices WHERE user_id = $1
func (*Queries) DeleteExpiredAuthStates ¶
DeleteExpiredAuthStates
DELETE FROM auth_states WHERE expires_at <= CURRENT_TIMESTAMP
func (*Queries) DeletePasswordAuth ¶
DeletePasswordAuth
DELETE FROM password_auth WHERE user_id = $1
func (*Queries) EditTalkSession ¶
func (q *Queries) EditTalkSession(ctx context.Context, arg EditTalkSessionParams) error
EditTalkSession
UPDATE talk_sessions
SET theme = $2,
description = $3,
scheduled_end_time = $4,
thumbnail_url = $5,
city = $6,
prefecture = $7,
restrictions = $8,
hide_report = $9,
updated_at = NOW(),
organization_id = $10,
organization_alias_id = $11,
hide_top = $12
WHERE talk_session_id = $1
func (*Queries) ExistsByDeviceTokenAndPlatform ¶
func (q *Queries) ExistsByDeviceTokenAndPlatform(ctx context.Context, arg ExistsByDeviceTokenAndPlatformParams) (bool, error)
ExistsByDeviceTokenAndPlatform
SELECT EXISTS (
SELECT 1 FROM devices
WHERE device_token = $1 AND platform = $2
) AS exists
func (*Queries) FindActiveSessionsByUserID ¶
func (q *Queries) FindActiveSessionsByUserID(ctx context.Context, userID uuid.UUID) ([]Session, error)
FindActiveSessionsByUserID
SELECT session_id, user_id, provider, session_status, expires_at, created_at, last_activity_at, organization_id
FROM sessions
WHERE user_id = $1
AND session_status = 0
func (*Queries) FindConsentByUserAndVersion ¶
func (q *Queries) FindConsentByUserAndVersion(ctx context.Context, arg FindConsentByUserAndVersionParams) (FindConsentByUserAndVersionRow, error)
FindConsentByUserAndVersion
SELECT
policy_consents.policy_consent_id, policy_consents.user_id, policy_consents.policy_version, policy_consents.consented_at, policy_consents.ip_address, policy_consents.user_agent
FROM
policy_consents
WHERE
user_id = $1
AND policy_version = $2
func (*Queries) FindOpinionsByOpinionIDs ¶
func (q *Queries) FindOpinionsByOpinionIDs(ctx context.Context, opinionIds []uuid.UUID) ([]FindOpinionsByOpinionIDsRow, error)
FindOpinionsByOpinionIDs
SELECT
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date
FROM
opinions
LEFT JOIN users
ON opinions.user_id = users.user_id
WHERE
opinions.opinion_id IN($1)
ORDER BY opinions.created_at DESC
func (*Queries) FindOrgUserByOrganizationID ¶
func (q *Queries) FindOrgUserByOrganizationID(ctx context.Context, organizationID uuid.UUID) ([]FindOrgUserByOrganizationIDRow, error)
FindOrgUserByOrganizationID
SELECT
organization_users.organization_user_id, organization_users.user_id, organization_users.organization_id, organization_users.created_at, organization_users.updated_at, organization_users.role
FROM organization_users
WHERE organization_id = $1
func (*Queries) FindOrgUserByOrganizationIDAndUserID ¶
func (q *Queries) FindOrgUserByOrganizationIDAndUserID(ctx context.Context, arg FindOrgUserByOrganizationIDAndUserIDParams) (FindOrgUserByOrganizationIDAndUserIDRow, error)
FindOrgUserByOrganizationIDAndUserID
SELECT
organization_users.organization_user_id, organization_users.user_id, organization_users.organization_id, organization_users.created_at, organization_users.updated_at, organization_users.role
FROM organization_users
WHERE organization_id = $1
AND user_id = $2
func (*Queries) FindOrgUserByUserID ¶
func (q *Queries) FindOrgUserByUserID(ctx context.Context, userID uuid.UUID) ([]FindOrgUserByUserIDRow, error)
FindOrgUserByUserID
SELECT
organization_users.organization_user_id, organization_users.user_id, organization_users.organization_id, organization_users.created_at, organization_users.updated_at, organization_users.role
FROM organization_users
WHERE organization_users.user_id = $1
func (*Queries) FindOrgUserByUserIDWithOrganization ¶
func (q *Queries) FindOrgUserByUserIDWithOrganization(ctx context.Context, userID uuid.UUID) ([]FindOrgUserByUserIDWithOrganizationRow, error)
FindOrgUserByUserIDWithOrganization
SELECT
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
organization_users.organization_user_id, organization_users.user_id, organization_users.organization_id, organization_users.created_at, organization_users.updated_at, organization_users.role,
organizations.organization_id, organizations.organization_type, organizations.name, organizations.owner_id, organizations.code, organizations.icon_url
FROM organization_users
LEFT JOIN organizations ON organization_users.organization_id = organizations.organization_id
LEFT JOIN users ON organization_users.user_id = users.user_id
WHERE organization_users.user_id = $1
AND users.withdrawal_date IS NULL
func (*Queries) FindOrganizationByCode ¶
func (q *Queries) FindOrganizationByCode(ctx context.Context, code string) (FindOrganizationByCodeRow, error)
FindOrganizationByCode
SELECT
organizations.organization_id, organizations.organization_type, organizations.name, organizations.owner_id, organizations.code, organizations.icon_url
FROM organizations
WHERE code = $1
func (*Queries) FindOrganizationByID ¶
func (q *Queries) FindOrganizationByID(ctx context.Context, organizationID uuid.UUID) (FindOrganizationByIDRow, error)
FindOrganizationByID
SELECT
organizations.organization_id, organizations.organization_type, organizations.name, organizations.owner_id, organizations.code, organizations.icon_url
FROM organizations
WHERE organization_id = $1
func (*Queries) FindOrganizationByName ¶
func (q *Queries) FindOrganizationByName(ctx context.Context, name string) (FindOrganizationByNameRow, error)
FindOrganizationByName
SELECT
organizations.organization_id, organizations.organization_type, organizations.name, organizations.owner_id, organizations.code, organizations.icon_url
FROM organizations
WHERE name = $1
func (*Queries) FindOrganizationUsersWithDetails ¶
func (q *Queries) FindOrganizationUsersWithDetails(ctx context.Context, organizationID uuid.UUID) ([]FindOrganizationUsersWithDetailsRow, error)
退会ユーザーは表示しない
SELECT
ou.organization_user_id, ou.user_id, ou.organization_id, ou.created_at, ou.updated_at, ou.role,
u.user_id, u.display_id, u.display_name, u.icon_url, u.created_at, u.updated_at, u.email, u.email_verified, u.withdrawal_date,
o.organization_id, o.organization_type, o.name, o.owner_id, o.code, o.icon_url
FROM organizations o
LEFT JOIN organization_users ou ON o.organization_id = ou.organization_id
LEFT JOIN users u ON ou.user_id = u.user_id
WHERE o.organization_id = $1
AND u.withdrawal_date IS NULL
ORDER BY ou.role ASC, u.user_id ASC
func (*Queries) FindOrganizationsByIDs ¶
func (q *Queries) FindOrganizationsByIDs(ctx context.Context, dollar_1 []uuid.UUID) ([]FindOrganizationsByIDsRow, error)
FindOrganizationsByIDs
SELECT
organizations.organization_id, organizations.organization_type, organizations.name, organizations.owner_id, organizations.code, organizations.icon_url
FROM organizations
WHERE organization_id = ANY($1::uuid[])
func (*Queries) FindPolicyByVersion ¶
func (q *Queries) FindPolicyByVersion(ctx context.Context, version string) (FindPolicyByVersionRow, error)
FindPolicyByVersion
SELECT
policy_versions.version, policy_versions.created_at
FROM
policy_versions
WHERE
version = $1
LIMIT 1
func (*Queries) FindReportByID ¶
func (q *Queries) FindReportByID(ctx context.Context, talkSessionID uuid.UUID) (FindReportByIDRow, error)
FindReportByID
SELECT
-- talk_session_report_history_id as analysis_report_history_id,
talk_session_id,
report,
created_at
FROM talk_session_reports
WHERE talk_session_id = $1
func (*Queries) FindReportByOpinionID ¶
func (q *Queries) FindReportByOpinionID(ctx context.Context, opinionID uuid.NullUUID) ([]FindReportByOpinionIDRow, error)
FindReportByOpinionID
SELECT
opinion_reports.opinion_report_id, opinion_reports.opinion_id, opinion_reports.talk_session_id, opinion_reports.reporter_id, opinion_reports.reason, opinion_reports.status, opinion_reports.created_at, opinion_reports.updated_at, opinion_reports.reason_text
FROM
opinion_reports
WHERE
opinion_id = $1::uuid
ORDER BY created_at DESC
func (*Queries) FindReportByOpinionIDs ¶
func (q *Queries) FindReportByOpinionIDs(ctx context.Context, arg FindReportByOpinionIDsParams) ([]FindReportByOpinionIDsRow, error)
FindReportByOpinionIDs
SELECT
opinion_reports.opinion_report_id, opinion_reports.opinion_id, opinion_reports.talk_session_id, opinion_reports.reporter_id, opinion_reports.reason, opinion_reports.status, opinion_reports.created_at, opinion_reports.updated_at, opinion_reports.reason_text,
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url
FROM
opinion_reports
LEFT JOIN opinions
ON opinion_reports.opinion_id = opinions.opinion_id
WHERE
opinion_reports.opinion_id = ANY($1::uuid[])
AND opinion_reports.status = $2
ORDER BY opinion_reports.created_at DESC
func (*Queries) FindReportsByTalkSession ¶
func (q *Queries) FindReportsByTalkSession(ctx context.Context, arg FindReportsByTalkSessionParams) ([]FindReportsByTalkSessionRow, error)
FindReportsByTalkSession
SELECT
opinion_reports.opinion_report_id, opinion_reports.opinion_id, opinion_reports.talk_session_id, opinion_reports.reporter_id, opinion_reports.reason, opinion_reports.status, opinion_reports.created_at, opinion_reports.updated_at, opinion_reports.reason_text
FROM
opinion_reports
WHERE
talk_session_id = $1::uuid
AND
CASE
WHEN $2::text IS NOT NULL THEN opinion_reports.status = $2::text
ELSE TRUE
END
ORDER BY created_at DESC
func (*Queries) FindSessionBySessionID ¶
FindSessionBySessionID
SELECT session_id, user_id, provider, session_status, expires_at, created_at, last_activity_at, organization_id FROM sessions WHERE session_id = $1
func (*Queries) FindTSConsentByTalksessionIdAndUserId ¶
func (q *Queries) FindTSConsentByTalksessionIdAndUserId(ctx context.Context, arg FindTSConsentByTalksessionIdAndUserIdParams) (FindTSConsentByTalksessionIdAndUserIdRow, error)
FindTSConsentByTalksessionIdAndUserId
SELECT
talksession_consents.talksession_id, talksession_consents.user_id, talksession_consents.restrictions, talksession_consents.consented_at
FROM
talksession_consents
WHERE
talksession_id = $1
AND user_id = $2
func (*Queries) FindUserStatusChangeLogsByUserID ¶
func (q *Queries) FindUserStatusChangeLogsByUserID(ctx context.Context, userID uuid.UUID) ([]UserStatusChangeLog, error)
FindUserStatusChangeLogsByUserID
SELECT
user_status_change_logs_id,
user_id,
status,
reason,
changed_at,
changed_by,
ip_address,
user_agent,
additional_data,
created_at
FROM user_status_change_logs
WHERE user_id = $1
ORDER BY changed_at DESC
func (*Queries) FindVoteByUserIDAndOpinionID ¶
func (q *Queries) FindVoteByUserIDAndOpinionID(ctx context.Context, arg FindVoteByUserIDAndOpinionIDParams) (Vote, error)
FindVoteByUserIDAndOpinionID
SELECT vote_id, opinion_id, user_id, vote_type, created_at, talk_session_id FROM votes WHERE user_id = $1 AND opinion_id = $2
func (*Queries) GetActionItemByID ¶
func (q *Queries) GetActionItemByID(ctx context.Context, actionItemID uuid.UUID) (GetActionItemByIDRow, error)
GetActionItemByID
SELECT
action_items.action_item_id,
action_items.talk_session_id,
action_items.sequence,
action_items.content,
action_items.status,
action_items.created_at,
action_items.updated_at,
users.display_name AS display_name,
users.display_id AS display_id,
users.icon_url AS icon_url
FROM action_items
LEFT JOIN talk_sessions
ON talk_sessions.talk_session_id = action_items.talk_session_id
LEFT JOIN users
ON talk_sessions.owner_id = users.user_id
WHERE action_item_id = $1
ORDER BY action_items.sequence
func (*Queries) GetActionItemsByTalkSessionID ¶
func (q *Queries) GetActionItemsByTalkSessionID(ctx context.Context, talkSessionID uuid.UUID) ([]GetActionItemsByTalkSessionIDRow, error)
GetActionItemsByTalkSessionID
SELECT
action_items.action_item_id,
action_items.talk_session_id,
action_items.sequence,
action_items.content,
action_items.status,
action_items.created_at,
action_items.updated_at,
users.display_name AS display_name,
users.display_id AS display,
users.icon_url AS icon_url
FROM action_items
LEFT JOIN talk_sessions
ON talk_sessions.talk_session_id = action_items.talk_session_id
LEFT JOIN users
ON talk_sessions.owner_id = users.user_id
WHERE action_items.talk_session_id = $1
ORDER BY action_items.sequence
func (*Queries) GetActiveDevicesByUserID ¶
GetActiveDevicesByUserID
SELECT device_id, user_id, device_token, platform, enabled, created_at, updated_at, device_name, app_version, os_version, last_active_at FROM devices WHERE user_id = $1 AND enabled = true ORDER BY created_at DESC
func (*Queries) GetActiveDevicesByUserIDs ¶
func (q *Queries) GetActiveDevicesByUserIDs(ctx context.Context, dollar_1 []uuid.UUID) ([]Device, error)
GetActiveDevicesByUserIDs
SELECT device_id, user_id, device_token, platform, enabled, created_at, updated_at, device_name, app_version, os_version, last_active_at FROM devices WHERE user_id = ANY($1::uuid[]) AND enabled = true ORDER BY user_id, created_at DESC
func (*Queries) GetActiveOrganizationAliases ¶
func (q *Queries) GetActiveOrganizationAliases(ctx context.Context, organizationID uuid.UUID) ([]OrganizationAlias, error)
GetActiveOrganizationAliases
SELECT alias_id, organization_id, alias_name, created_at, updated_at, created_by, deactivated_at, deactivated_by FROM organization_aliases WHERE organization_id = $1 AND deactivated_at IS NULL ORDER BY created_at ASC
func (*Queries) GetAllActiveDevices ¶
GetAllActiveDevices
SELECT device_id, user_id, device_token, platform, enabled, created_at, updated_at, device_name, app_version, os_version, last_active_at FROM devices WHERE enabled = true ORDER BY user_id, created_at DESC
func (*Queries) GetAllTalkSessionCount ¶
GetAllTalkSessionCount
SELECT
COUNT(DISTINCT talk_sessions.talk_session_id) AS talk_session_count
FROM talk_sessions
func (*Queries) GetAuthState ¶
GetAuthState
SELECT id, state, provider, redirect_url, created_at, expires_at, registration_url, organization_id FROM auth_states WHERE state = $1 AND expires_at > CURRENT_TIMESTAMP LIMIT 1
func (*Queries) GetConclusionByID ¶
func (q *Queries) GetConclusionByID(ctx context.Context, talkSessionID uuid.UUID) (GetConclusionByIDRow, error)
GetConclusionByID
SELECT
conclusion.talk_session_id, conclusion.content, conclusion.created_by, conclusion.created_at, conclusion.updated_at,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date
FROM talk_session_conclusions as conclusion
LEFT JOIN users
ON conclusion.created_by = users.user_id
WHERE talk_session_id = $1
func (*Queries) GetDailyUserStats ¶
func (q *Queries) GetDailyUserStats(ctx context.Context, arg GetDailyUserStatsParams) ([]GetDailyUserStatsRow, error)
GetDailyUserStats
WITH params AS (
SELECT
$1::integer AS offset,
$2::integer AS limit
),
date_bounds AS (
SELECT
CURRENT_DATE - ((params.offset + params.limit - 1) * INTERVAL '1 day') AS start_date,
CURRENT_DATE - (params.offset * INTERVAL '1 day') AS end_date
FROM params
),
date_range AS (
SELECT generate_series(
date_bounds.start_date,
date_bounds.end_date,
INTERVAL '1 day'
)::date as activity_date
FROM date_bounds
),
user_activity AS (
SELECT DISTINCT
users.user_id,
DATE_TRUNC('day', COALESCE(votes.created_at, opinions.created_at))::date as activity_date,
CASE WHEN votes.user_id IS NOT NULL THEN 1 ELSE 0 END as has_voted,
CASE WHEN opinions.user_id IS NOT NULL THEN 1 ELSE 0 END as has_posted
FROM users
LEFT JOIN votes ON users.user_id = votes.user_id
LEFT JOIN opinions ON users.user_id = opinions.user_id
WHERE users.user_id != '00000000-0000-0000-0000-000000000001'::uuid
AND COALESCE(votes.created_at, opinions.created_at) IS NOT NULL
AND users.display_id IS NOT NULL
)
SELECT
date_range.activity_date,
COALESCE(COUNT(user_activity.user_id), 0)::integer as total_users,
COALESCE(SUM(has_voted), 0) as users_with_votes,
COALESCE(SUM(has_posted), 0) as users_with_posts,
COALESCE(SUM(CASE WHEN has_voted = 1 OR has_posted = 1 THEN 1 ELSE 0 END), 0)::integer as active_users
FROM date_range
LEFT JOIN user_activity ON date_range.activity_date = user_activity.activity_date
GROUP BY date_range.activity_date
ORDER BY date_range.activity_date DESC
func (*Queries) GetDeviceByID ¶
GetDeviceByID
SELECT device_id, user_id, device_token, platform, enabled, created_at, updated_at, device_name, app_version, os_version, last_active_at FROM devices WHERE device_id = $1
func (*Queries) GetDeviceByToken ¶
GetDeviceByToken
SELECT device_id, user_id, device_token, platform, enabled, created_at, updated_at, device_name, app_version, os_version, last_active_at FROM devices WHERE device_token = $1
func (*Queries) GetDevicesByUserID ¶
GetDevicesByUserID
SELECT device_id, user_id, device_token, platform, enabled, created_at, updated_at, device_name, app_version, os_version, last_active_at FROM devices WHERE user_id = $1 ORDER BY created_at DESC
func (*Queries) GetEventsByAggregateID ¶
func (q *Queries) GetEventsByAggregateID(ctx context.Context, arg GetEventsByAggregateIDParams) ([]DomainEvent, error)
GetEventsByAggregateID
SELECT id, event_type, event_data, aggregate_id, aggregate_type, status, occurred_at, processed_at, failed_at, failure_reason, retry_count FROM domain_events WHERE aggregate_id = $1 AND aggregate_type = $2 ORDER BY occurred_at ASC
func (*Queries) GetFeedbackByReportHistoryID ¶
func (q *Queries) GetFeedbackByReportHistoryID(ctx context.Context, talkSessionReportHistoryID uuid.UUID) ([]GetFeedbackByReportHistoryIDRow, error)
GetFeedbackByReportHistoryID
SELECT
report_feedback_id,
user_id,
feedback_type,
created_at
FROM report_feedback
WHERE talk_session_report_history_id = $1
func (*Queries) GetGeneratedImages ¶
func (q *Queries) GetGeneratedImages(ctx context.Context, dollar_1 uuid.UUID) (TalkSessionGeneratedImage, error)
GetGeneratedImages
SELECT
talk_session_id,
wordmap_url,
tsnc_url,
created_at,
updated_at
FROM talk_session_generated_images
WHERE talk_session_id = $1::uuid
func (*Queries) GetGroupInfoByTalkSessionId ¶
func (q *Queries) GetGroupInfoByTalkSessionId(ctx context.Context, talkSessionID uuid.UUID) ([]GetGroupInfoByTalkSessionIdRow, error)
GetGroupInfoByTalkSessionId
SELECT
user_group_info.pos_x,
user_group_info.pos_y,
user_group_info.group_id,
user_group_info.perimeter_index,
users.display_id AS display_id,
users.display_name AS display_name,
users.icon_url AS icon_url,
user_group_info.user_id
FROM user_group_info
LEFT JOIN users
ON user_group_info.user_id = users.user_id
WHERE talk_session_id = $1
func (*Queries) GetGroupListByTalkSessionId ¶
func (q *Queries) GetGroupListByTalkSessionId(ctx context.Context, talkSessionID uuid.UUID) ([]int32, error)
GetGroupListByTalkSessionId
SELECT
DISTINCT user_group_info.group_id
FROM user_group_info
WHERE talk_session_id = $1
func (*Queries) GetGroupRatioByOpinionID ¶
func (q *Queries) GetGroupRatioByOpinionID(ctx context.Context, opinionID uuid.NullUUID) ([]GetGroupRatioByOpinionIDRow, error)
GetGroupRatioByOpinionID
SELECT representative_opinions.talk_session_id, representative_opinions.opinion_id, representative_opinions.group_id, representative_opinions.rank, representative_opinions.updated_at, representative_opinions.created_at, representative_opinions.agree_count, representative_opinions.disagree_count, representative_opinions.pass_count FROM representative_opinions WHERE representative_opinions.opinion_id = $1::uuid ORDER BY representative_opinions.created_at DESC
func (*Queries) GetLatestPolicyVersion ¶
func (q *Queries) GetLatestPolicyVersion(ctx context.Context) (GetLatestPolicyVersionRow, error)
GetLatestPolicyVersion
SELECT
policy_versions.version, policy_versions.created_at
FROM
policy_versions
ORDER BY created_at DESC
LIMIT 1
func (*Queries) GetNotificationPreference ¶
func (q *Queries) GetNotificationPreference(ctx context.Context, userID uuid.UUID) (NotificationPreference, error)
GetNotificationPreference
SELECT id, user_id, push_notification_enabled, created_at, updated_at FROM notification_preferences WHERE user_id = $1
func (*Queries) GetNotificationPreferencesByUserIDs ¶
func (q *Queries) GetNotificationPreferencesByUserIDs(ctx context.Context, dollar_1 []uuid.UUID) ([]NotificationPreference, error)
GetNotificationPreferencesByUserIDs
SELECT id, user_id, push_notification_enabled, created_at, updated_at FROM notification_preferences WHERE user_id = ANY($1::uuid[])
func (*Queries) GetOpinionByID ¶
func (q *Queries) GetOpinionByID(ctx context.Context, arg GetOpinionByIDParams) (GetOpinionByIDRow, error)
親意見に対するユーザーの投票を取得 この意見に対するリプライ数 ユーザーIDが提供された場合、そのユーザーの投票ステータスを一緒に取得
SELECT
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(cv.vote_type, 0) AS current_vote_type,
COALESCE(pv.vote_type, 0) AS parent_vote_type,
COALESCE(rc.reply_count, 0) AS reply_count
FROM opinions
LEFT JOIN users
ON opinions.user_id = users.user_id
LEFT JOIN (
SELECT votes.vote_type, votes.user_id, votes.opinion_id
FROM votes
) pv ON pv.opinion_id = opinions.parent_opinion_id
AND pv.user_id = opinions.user_id
LEFT JOIN (
SELECT COUNT(opinion_id) AS reply_count, parent_opinion_id as opinion_id
FROM opinions
GROUP BY parent_opinion_id
) rc ON rc.opinion_id = opinions.opinion_id
LEFT JOIN (
SELECT votes.vote_type, votes.user_id, votes.opinion_id
FROM votes
WHERE votes.user_id = $2::uuid
) cv ON opinions.opinion_id = cv.opinion_id
WHERE opinions.opinion_id = $1
func (*Queries) GetOpinionReplies ¶
func (q *Queries) GetOpinionReplies(ctx context.Context, arg GetOpinionRepliesParams) ([]GetOpinionRepliesRow, error)
親意見に対する子意見主の投票を取得 ユーザーIDが提供された場合、そのユーザーの投票ステータスを取得
SELECT
DISTINCT opinions.opinion_id,
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(pv.vote_type, 0) AS parent_vote_type,
COALESCE(cv.vote_type, 0) AS current_vote_type
FROM opinions
LEFT JOIN users
ON opinions.user_id = users.user_id
LEFT JOIN (
SELECT votes.vote_type, votes.user_id, votes.opinion_id
FROM votes
WHERE votes.opinion_id = $1
) pv ON opinions.user_id = pv.user_id
AND opinions.opinion_id = pv.opinion_id
LEFT JOIN (
SELECT votes.vote_type, votes.opinion_id
FROM votes
WHERE votes.user_id = $2::uuid
) cv ON opinions.opinion_id = cv.opinion_id
WHERE opinions.parent_opinion_id = $1
GROUP BY opinions.opinion_id,users.user_id, users.display_name, users.display_id, users.icon_url, pv.vote_type, cv.vote_type
ORDER BY opinions.created_at DESC
func (*Queries) GetOpinionsByRank ¶
func (q *Queries) GetOpinionsByRank(ctx context.Context, arg GetOpinionsByRankParams) ([]GetOpinionsByRankRow, error)
指定されたユーザーが投票していない意見のみを取得 親意見に対するユーザーの投票を取得 この意見に対するリプライ数 通報された意見を除外
SELECT
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(rc.reply_count, 0) AS reply_count
FROM opinions
LEFT JOIN users
ON opinions.user_id = users.user_id
LEFT JOIN (
SELECT opinions.opinion_id
FROM opinions
LEFT JOIN votes
ON opinions.opinion_id = votes.opinion_id
AND votes.user_id = $1::uuid
GROUP BY opinions.opinion_id
HAVING COUNT(votes.vote_id) = 0
) vote_count ON opinions.opinion_id = vote_count.opinion_id
LEFT JOIN (
SELECT votes.vote_type, votes.user_id, votes.opinion_id
FROM votes
) pv ON opinions.parent_opinion_id = pv.opinion_id
AND pv.user_id = opinions.user_id
LEFT JOIN (
SELECT COUNT(opinion_id) AS reply_count, parent_opinion_id as opinion_id
FROM opinions
GROUP BY parent_opinion_id
) rc ON rc.opinion_id = opinions.opinion_id
LEFT JOIN (
SELECT DISTINCT opinion_reports.opinion_id, opinion_reports.status
FROM opinion_reports
WHERE opinion_reports.talk_session_id = $2::uuid
) opr ON opr.opinion_id = opinions.opinion_id
LEFT JOIN representative_opinions ON opinions.opinion_id = representative_opinions.opinion_id
WHERE opinions.talk_session_id = $2::uuid
AND vote_count.opinion_id = opinions.opinion_id
AND opinions.opinion_id NOT IN (
SELECT opinions.opinion_id
FROM opinions
WHERE opinions.opinion_id = ANY($3::uuid[])
)
AND opinions.parent_opinion_id IS NULL
-- 削除されたものはスワイプ意見から除外
AND (opr.opinion_id IS NULL OR opr.status != 'deleted')
AND representative_opinions.rank = $4::int
LIMIT $5::int
func (*Queries) GetOpinionsByTalkSessionID ¶
func (q *Queries) GetOpinionsByTalkSessionID(ctx context.Context, arg GetOpinionsByTalkSessionIDParams) ([]GetOpinionsByTalkSessionIDRow, error)
GetOpinionsByTalkSessionID
WITH unique_opinions AS (
SELECT DISTINCT ON (opinions.opinion_id)
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url
FROM opinions
WHERE opinions.talk_session_id = $1
)
SELECT
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(pv.vote_type, 0) AS parent_vote_type,
COALESCE(rc.reply_count, 0) AS reply_count,
COALESCE(cv.vote_type, 0) AS current_vote_type
FROM unique_opinions opinions
LEFT JOIN users ON opinions.user_id = users.user_id
LEFT JOIN (
SELECT DISTINCT ON (opinion_id) vote_type, user_id, opinion_id
FROM votes
) pv ON opinions.parent_opinion_id = pv.opinion_id
AND opinions.user_id = pv.user_id
LEFT JOIN (
SELECT COUNT(opinion_id) AS reply_count, parent_opinion_id
FROM opinions
GROUP BY parent_opinion_id
) rc ON opinions.opinion_id = rc.parent_opinion_id
LEFT JOIN (
SELECT DISTINCT ON (opinion_id) vote_type, user_id, opinion_id
FROM votes
WHERE user_id = $4::uuid
) cv ON opinions.opinion_id = cv.opinion_id
WHERE opinions.parent_opinion_id IS NULL
-- IsSeedがtrueの場合、ユーザーIDが00000000-0000-0000-0000-000000000001の意見のみを取得
AND (
CASE
WHEN $5::boolean IS TRUE THEN opinions.user_id = '00000000-0000-0000-0000-000000000001'::uuid
ELSE TRUE
END
)
ORDER BY
CASE $6::text
WHEN 'latest' THEN EXTRACT(EPOCH FROM opinions.created_at)
WHEN 'oldest' THEN EXTRACT(EPOCH FROM TIMESTAMP '2199-12-31 23:59:59') - EXTRACT(EPOCH FROM opinions.created_at)
WHEN 'mostReplies' THEN COALESCE(rc.reply_count, 0)
END DESC
LIMIT $2 OFFSET $3
func (*Queries) GetOpinionsByUserID ¶
func (q *Queries) GetOpinionsByUserID(ctx context.Context, arg GetOpinionsByUserIDParams) ([]GetOpinionsByUserIDRow, error)
latest, mostReply, oldestでソート
SELECT
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(pv.vote_type, 0) AS parent_vote_type,
-- 意見に対するリプライ数(再帰)
COALESCE(rc.reply_count, 0) AS reply_count
FROM opinions
LEFT JOIN users
ON opinions.user_id = users.user_id
LEFT JOIN (
SELECT votes.vote_type, votes.user_id, votes.opinion_id
FROM votes
) pv ON opinions.parent_opinion_id = pv.opinion_id
AND opinions.user_id = pv.user_id
LEFT JOIN (
SELECT COUNT(opinion_id) AS reply_count, parent_opinion_id
FROM opinions
GROUP BY parent_opinion_id
) rc ON opinions.opinion_id = rc.parent_opinion_id
WHERE opinions.user_id = $1
ORDER BY
CASE $4::text
WHEN 'latest' THEN EXTRACT(EPOCH FROM opinions.created_at)
WHEN 'oldest' THEN EXTRACT(EPOCH FROM TIMESTAMP '2199-12-31 23:59:59') - EXTRACT(EPOCH FROM opinions.created_at)
WHEN 'mostReplies' THEN reply_count
END DESC
LIMIT $2 OFFSET $3
func (*Queries) GetOrganizationAliasById ¶
func (q *Queries) GetOrganizationAliasById(ctx context.Context, aliasID uuid.UUID) (OrganizationAlias, error)
GetOrganizationAliasById
SELECT alias_id, organization_id, alias_name, created_at, updated_at, created_by, deactivated_at, deactivated_by FROM organization_aliases WHERE alias_id = $1
func (*Queries) GetOwnTalkSessionByDisplayIDWithCount ¶
func (q *Queries) GetOwnTalkSessionByDisplayIDWithCount(ctx context.Context, arg GetOwnTalkSessionByDisplayIDWithCountParams) ([]GetOwnTalkSessionByDisplayIDWithCountRow, error)
GetOwnTalkSessionByDisplayIDWithCount
WITH filtered_sessions AS (
SELECT ts.talk_session_id
FROM talk_sessions ts
LEFT JOIN users ON ts.owner_id = users.user_id
WHERE
users.display_id = $3::text
AND
CASE $4::text
WHEN 'finished' THEN ts.scheduled_end_time <= now()
WHEN 'open' THEN ts.scheduled_end_time > now()
ELSE TRUE
END
AND
CASE
WHEN $5::text IS NOT NULL
THEN ts.theme LIKE '%' || $5::text || '%'
ELSE TRUE
END
)
SELECT
ts.talk_session_id, ts.owner_id, ts.theme, ts.scheduled_end_time, ts.created_at, ts.city, ts.prefecture, ts.description, ts.thumbnail_url, ts.restrictions, ts.updated_at, ts.hide_report, ts.organization_id, ts.organization_alias_id, ts.hide_top,
COALESCE(oc.opinion_count, 0) AS opinion_count,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(organization_aliases.alias_name, '') AS alias_name,
COALESCE(organization_aliases.alias_id, '00000000-0000-0000-0000-000000000000'::uuid) AS alias_id,
COALESCE(organization_aliases.organization_id, '00000000-0000-0000-0000-000000000000'::uuid) AS organization_id,
COALESCE(ST_Y(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location))),0)::float AS latitude,
COALESCE(ST_X(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location))),0)::float AS longitude,
(SELECT COUNT(*) FROM filtered_sessions) AS total_count
FROM talk_sessions ts
INNER JOIN filtered_sessions fs ON fs.talk_session_id = ts.talk_session_id
LEFT JOIN (
SELECT talk_session_id, COUNT(opinion_id) AS opinion_count
FROM opinions
GROUP BY talk_session_id
) oc ON oc.talk_session_id = ts.talk_session_id
LEFT JOIN users ON ts.owner_id = users.user_id
LEFT JOIN talk_session_locations ON talk_session_locations.talk_session_id = ts.talk_session_id
LEFT JOIN organization_aliases ON ts.organization_alias_id = organization_aliases.alias_id
ORDER BY ts.created_at DESC
LIMIT $2 OFFSET $1
func (*Queries) GetParentOpinions ¶
func (q *Queries) GetParentOpinions(ctx context.Context, arg GetParentOpinionsParams) ([]GetParentOpinionsRow, error)
GetParentOpinions
WITH RECURSIVE opinion_tree AS (
-- ベースケース:指定された意見から開始
SELECT
o.opinion_id,
o.parent_opinion_id,
1 as level
FROM opinions o
WHERE o.opinion_id = $1
UNION ALL
SELECT
p.opinion_id,
p.parent_opinion_id,
t.level + 1
FROM opinions p
INNER JOIN opinion_tree t ON t.parent_opinion_id = p.opinion_id
)
SELECT
o.opinion_id, o.talk_session_id, o.user_id, o.parent_opinion_id, o.title, o.content, o.created_at, o.picture_url, o.reference_url,
u.user_id, u.display_id, u.display_name, u.icon_url, u.created_at, u.updated_at, u.email, u.email_verified, u.withdrawal_date,
COALESCE(pv.vote_type, 0) AS parent_vote_type,
COALESCE(rc.reply_count, 0) AS reply_count,
COALESCE(cv.vote_type, 0) AS current_vote_type,
ot.level
FROM opinion_tree ot
JOIN opinions o ON ot.opinion_id = o.opinion_id
LEFT JOIN users u ON o.user_id = u.user_id
LEFT JOIN (
SELECT votes.vote_type, votes.user_id, votes.opinion_id
FROM votes
) pv ON o.parent_opinion_id = pv.opinion_id
AND o.user_id = pv.user_id
LEFT JOIN (
SELECT votes.vote_type, votes.user_id, votes.opinion_id
FROM votes
) cv ON o.opinion_id = cv.opinion_id
AND cv.user_id = $2::uuid
LEFT JOIN (
SELECT COUNT(opinion_id) AS reply_count, parent_opinion_id
FROM opinions
GROUP BY parent_opinion_id
) rc ON o.opinion_id = rc.parent_opinion_id
ORDER BY ot.level DESC
func (*Queries) GetPasswordAuthByUserId ¶
func (q *Queries) GetPasswordAuthByUserId(ctx context.Context, userID uuid.UUID) (GetPasswordAuthByUserIdRow, error)
GetPasswordAuthByUserId
SELECT password_auth.password_auth_id, password_auth.user_id, password_auth.password_hash, password_auth.salt, password_auth.required_password_change, password_auth.last_changed, password_auth.created_at, password_auth.updated_at FROM password_auth WHERE user_id = $1
func (*Queries) GetRandomOpinions ¶
func (q *Queries) GetRandomOpinions(ctx context.Context, arg GetRandomOpinionsParams) ([]GetRandomOpinionsRow, error)
指定されたユーザーが投票していない意見のみを取得 この意見に対するリプライ数 通報された意見を除外 トークセッションに紐づく意見のみを取得
SELECT
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(rc.reply_count, 0) AS reply_count
FROM opinions
LEFT JOIN users
ON opinions.user_id = users.user_id
LEFT JOIN (
SELECT opinions.opinion_id
FROM opinions
LEFT JOIN votes
ON opinions.opinion_id = votes.opinion_id
AND votes.user_id = $1
GROUP BY opinions.opinion_id
HAVING COUNT(votes.vote_id) = 0
) vote_count ON opinions.opinion_id = vote_count.opinion_id
LEFT JOIN (
SELECT COUNT(opinion_id) AS reply_count, parent_opinion_id as opinion_id
FROM opinions
GROUP BY parent_opinion_id
) rc ON rc.opinion_id = opinions.opinion_id
LEFT JOIN (
SELECT DISTINCT opinion_reports.opinion_id, opinion_reports.status
FROM opinion_reports
WHERE opinion_reports.talk_session_id = $2
) opr ON opr.opinion_id = opinions.opinion_id
WHERE opinions.talk_session_id = $2
AND vote_count.opinion_id = opinions.opinion_id
-- exclude_opinion_idsが空でない場合、除外する意見を指定
AND opinions.opinion_id NOT IN (
SELECT opinions.opinion_id
FROM opinions
WHERE opinions.opinion_id = ANY($4::uuid[])
)
-- 親意見がないものを取得
AND opinions.parent_opinion_id IS NULL
-- 削除されたものはスワイプ意見から除外
AND (opr.opinion_id IS NULL OR opr.status != 'deleted')
ORDER BY RANDOM()
LIMIT $3
func (*Queries) GetReportByTalkSessionId ¶
func (q *Queries) GetReportByTalkSessionId(ctx context.Context, talkSessionID uuid.UUID) (GetReportByTalkSessionIdRow, error)
GetReportByTalkSessionId
SELECT
-- talk_session_report_history_id as analysis_report_history_id,
talk_session_id,
report,
created_at
FROM talk_session_reports
WHERE talk_session_id = $1
func (*Queries) GetRepresentativeOpinionsByTalkSessionId ¶
func (q *Queries) GetRepresentativeOpinionsByTalkSessionId(ctx context.Context, talkSessionID uuid.UUID) ([]GetRepresentativeOpinionsByTalkSessionIdRow, error)
GetRepresentativeOpinionsByTalkSessionId
SELECT
representative_opinions.talk_session_id, representative_opinions.opinion_id, representative_opinions.group_id, representative_opinions.rank, representative_opinions.updated_at, representative_opinions.created_at, representative_opinions.agree_count, representative_opinions.disagree_count, representative_opinions.pass_count,
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(rc.reply_count, 0) AS reply_count
FROM representative_opinions
LEFT JOIN opinions
ON representative_opinions.opinion_id = opinions.opinion_id
LEFT JOIN users
ON opinions.user_id = users.user_id
LEFT JOIN (
SELECT COUNT(opinion_id) AS reply_count, parent_opinion_id
FROM opinions
GROUP BY parent_opinion_id
) rc ON opinions.opinion_id = rc.parent_opinion_id
WHERE representative_opinions.rank < 4
AND opinions.talk_session_id = $1
ORDER BY representative_opinions.rank
func (*Queries) GetRespondTalkSessionByUserID ¶
func (q *Queries) GetRespondTalkSessionByUserID(ctx context.Context, arg GetRespondTalkSessionByUserIDParams) ([]GetRespondTalkSessionByUserIDRow, error)
GetRespondTalkSessionByUserID
SELECT
ts.talk_session_id, ts.owner_id, ts.theme, ts.scheduled_end_time, ts.created_at, ts.city, ts.prefecture, ts.description, ts.thumbnail_url, ts.restrictions, ts.updated_at, ts.hide_report, ts.organization_id, ts.organization_alias_id, ts.hide_top,
COALESCE(oc.opinion_count, 0) AS opinion_count,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(organization_aliases.alias_name, '') AS alias_name,
COALESCE(organization_aliases.alias_id, '00000000-0000-0000-0000-000000000000'::uuid) AS alias_id,
COALESCE(organization_aliases.organization_id, '00000000-0000-0000-0000-000000000000'::uuid) AS organization_id,
organization_aliases.created_at,
talk_session_locations.talk_session_id as location_id,
COALESCE(ST_Y(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location))),0)::float AS latitude,
COALESCE(ST_X(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location))),0)::float AS longitude
FROM talk_sessions ts
LEFT JOIN (
SELECT talk_session_id, COUNT(opinion_id) AS opinion_count
FROM opinions
GROUP BY talk_session_id
) oc ON oc.talk_session_id = ts.talk_session_id
LEFT JOIN users
ON ts.owner_id = users.user_id
LEFT JOIN votes
ON votes.talk_session_id = ts.talk_session_id
LEFT JOIN talk_session_locations
ON talk_session_locations.talk_session_id = ts.talk_session_id
LEFT JOIN organization_aliases
ON ts.organization_alias_id = organization_aliases.alias_id
WHERE
votes.user_id = $3::uuid
AND
CASE $4::text IS NOT NULL
WHEN $4::text = 'finished' THEN ts.scheduled_end_time <= now()
WHEN $4::text = 'open' THEN ts.scheduled_end_time > now()
ELSE TRUE
END
AND
CASE
WHEN $5::text IS NOT NULL
THEN ts.theme LIKE '%' || $5::text || '%'
ELSE TRUE
END
GROUP BY ts.talk_session_id, oc.opinion_count, users.user_id, users.display_name, users.display_id, users.icon_url, talk_session_locations.talk_session_id
ORDER BY ts.created_at DESC
LIMIT $1 OFFSET $2
func (*Queries) GetSeedOpinions ¶
func (q *Queries) GetSeedOpinions(ctx context.Context, arg GetSeedOpinionsParams) ([]GetSeedOpinionsRow, error)
指定されたユーザーが投票していない意見のみを取得 この意見に対するリプライ数 トークセッションに紐づく意見のみを取得
SELECT
opinions.opinion_id, opinions.talk_session_id, opinions.user_id, opinions.parent_opinion_id, opinions.title, opinions.content, opinions.created_at, opinions.picture_url, opinions.reference_url,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(rc.reply_count, 0) AS reply_count
FROM opinions
LEFT JOIN users
ON opinions.user_id = users.user_id
LEFT JOIN (
SELECT opinions.opinion_id
FROM opinions
LEFT JOIN votes
ON opinions.opinion_id = votes.opinion_id
AND votes.user_id = $2
GROUP BY opinions.opinion_id
HAVING COUNT(votes.vote_id) = 0
) vote_count ON opinions.opinion_id = vote_count.opinion_id
LEFT JOIN (
SELECT COUNT(opinion_id) AS reply_count, parent_opinion_id as opinion_id
FROM opinions
GROUP BY parent_opinion_id
) rc ON rc.opinion_id = opinions.opinion_id
WHERE opinions.talk_session_id = $1
AND vote_count.opinion_id = opinions.opinion_id
AND opinions.parent_opinion_id IS NULL
AND opinions.user_id = '00000000-0000-0000-0000-000000000001'::uuid
LIMIT $3
func (*Queries) GetTalkSessionByID ¶
func (q *Queries) GetTalkSessionByID(ctx context.Context, talkSessionID uuid.UUID) (GetTalkSessionByIDRow, error)
GetTalkSessionByID
SELECT
ts.talk_session_id, ts.owner_id, ts.theme, ts.scheduled_end_time, ts.created_at, ts.city, ts.prefecture, ts.description, ts.thumbnail_url, ts.restrictions, ts.updated_at, ts.hide_report, ts.organization_id, ts.organization_alias_id, ts.hide_top,
COALESCE(oc.opinion_count, 0) AS opinion_count,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(organization_aliases.alias_name, '') AS alias_name,
COALESCE(organization_aliases.alias_id, '00000000-0000-0000-0000-000000000000'::uuid) AS alias_id,
COALESCE(organization_aliases.organization_id, '00000000-0000-0000-0000-000000000000'::uuid) AS organization_id,
talk_session_locations.talk_session_id as location_id,
COALESCE(ST_Y(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location))),0)::float AS latitude,
COALESCE(ST_X(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location))),0)::float AS longitude
FROM talk_sessions ts
LEFT JOIN users
ON ts.owner_id = users.user_id
LEFT JOIN (
SELECT opinions.talk_session_id, COUNT(opinions.opinion_id) AS opinion_count
FROM opinions
GROUP BY opinions.talk_session_id
) oc ON ts.talk_session_id = oc.talk_session_id
LEFT JOIN organization_aliases
ON ts.organization_alias_id = organization_aliases.alias_id
LEFT JOIN talk_session_locations
ON ts.talk_session_id = talk_session_locations.talk_session_id
WHERE ts.talk_session_id = $1
func (*Queries) GetTalkSessionConclusionByID ¶
func (q *Queries) GetTalkSessionConclusionByID(ctx context.Context, talkSessionID uuid.UUID) (GetTalkSessionConclusionByIDRow, error)
GetTalkSessionConclusionByID
SELECT
talk_session_conclusions.talk_session_id,
talk_session_conclusions.content,
talk_session_conclusions.created_by,
talk_session_conclusions.created_at,
talk_session_conclusions.updated_at,
users.user_id AS user_id,
users.display_name AS display_name,
users.display_id AS display_id,
users.icon_url AS icon_url
FROM talk_session_conclusions
LEFT JOIN users
ON talk_session_conclusions.created_by = users.user_id
WHERE talk_session_id = $1
func (*Queries) GetTalkSessionParticipants ¶
func (q *Queries) GetTalkSessionParticipants(ctx context.Context, talkSessionID uuid.UUID) ([]uuid.UUID, error)
GetTalkSessionParticipants
SELECT DISTINCT u.user_id FROM users u INNER JOIN opinions o ON u.user_id = o.user_id WHERE o.talk_session_id = $1
func (*Queries) GetUnprocessedEndedSessions ¶
func (q *Queries) GetUnprocessedEndedSessions(ctx context.Context, limit int32) ([]TalkSession, error)
GetUnprocessedEndedSessions
SELECT talk_session_id, owner_id, theme, scheduled_end_time, created_at, city, prefecture, description, thumbnail_url, restrictions, updated_at, hide_report, organization_id, organization_alias_id, hide_top FROM talk_sessions
WHERE scheduled_end_time < NOW()
AND NOT EXISTS (
SELECT 1 FROM domain_events
WHERE aggregate_id = talk_sessions.talk_session_id::text
AND aggregate_type = 'TalkSession'
AND event_type = 'talksession.ended'
)
ORDER BY scheduled_end_time ASC
LIMIT $1
FOR UPDATE SKIP LOCKED
func (*Queries) GetUnprocessedEvents ¶
func (q *Queries) GetUnprocessedEvents(ctx context.Context, arg GetUnprocessedEventsParams) ([]DomainEvent, error)
GetUnprocessedEvents
SELECT id, event_type, event_data, aggregate_id, aggregate_type, status, occurred_at, processed_at, failed_at, failure_reason, retry_count FROM domain_events
WHERE status IN ('pending', 'failed')
AND (status != 'failed' OR retry_count < $1)
AND ($2::text[] IS NULL OR event_type = ANY($2::text[]))
ORDER BY occurred_at ASC
LIMIT $3
FOR UPDATE SKIP LOCKED
func (*Queries) GetUserAuthByUserID ¶
func (q *Queries) GetUserAuthByUserID(ctx context.Context, userID uuid.UUID) (GetUserAuthByUserIDRow, error)
GetUserAuthByUserID
SELECT
user_auths.user_auth_id, user_auths.user_id, user_auths.provider, user_auths.subject, user_auths.is_verified, user_auths.created_at
FROM
"user_auths"
WHERE
user_id = $1
func (*Queries) GetUserByID ¶
GetUserByID
SELECT
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date
FROM
"users"
WHERE
users.user_id = $1
func (*Queries) GetUserBySubject ¶
func (q *Queries) GetUserBySubject(ctx context.Context, subject string) (GetUserBySubjectRow, error)
GetUserBySubject
SELECT
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
user_auths.user_auth_id, user_auths.user_id, user_auths.provider, user_auths.subject, user_auths.is_verified, user_auths.created_at
FROM
"users"
JOIN "user_auths" ON "users".user_id = "user_auths".user_id
WHERE
"user_auths".subject = $1
func (*Queries) GetUserDemographicByUserID ¶
func (q *Queries) GetUserDemographicByUserID(ctx context.Context, userID uuid.UUID) (UserDemographic, error)
GetUserDemographicByUserID
SELECT
user_demographics_id, user_id, date_of_birth, gender, city, created_at, updated_at, prefecture
FROM
"user_demographics"
WHERE
user_id = $1
func (*Queries) GetUserDetailByID ¶
func (q *Queries) GetUserDetailByID(ctx context.Context, userID uuid.UUID) (GetUserDetailByIDRow, error)
GetUserDetailByID
SELECT
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
user_auths.user_auth_id, user_auths.user_id, user_auths.provider, user_auths.subject, user_auths.is_verified, user_auths.created_at,
user_demographics.user_demographics_id, user_demographics.user_id, user_demographics.date_of_birth, user_demographics.gender, user_demographics.city, user_demographics.created_at, user_demographics.updated_at, user_demographics.prefecture
FROM
users
LEFT JOIN user_auths ON users.user_id = user_auths.user_id
LEFT JOIN user_demographics ON users.user_id = user_demographics.user_id
WHERE
users.user_id = $1
func (*Queries) GetUserStats ¶
func (q *Queries) GetUserStats(ctx context.Context) (GetUserStatsRow, error)
GetUserStats
WITH user_activity AS (
SELECT DISTINCT users.user_id,
CASE WHEN votes.user_id IS NOT NULL THEN 1 ELSE 0 END as has_voted,
CASE WHEN opinions.user_id IS NOT NULL THEN 1 ELSE 0 END as has_posted
FROM users
LEFT JOIN votes ON users.user_id = votes.user_id
LEFT JOIN opinions ON users.user_id = opinions.user_id
WHERE users.user_id != '00000000-0000-0000-0000-000000000001'::uuid
AND users.display_id IS NOT NULL
)
SELECT
COUNT(*) as total_users,
SUM(has_voted) as users_with_votes,
SUM(has_posted) as users_with_posts,
SUM(CASE WHEN has_voted = 1 OR has_posted = 1 THEN 1 ELSE 0 END) as active_users
FROM user_activity
func (*Queries) GetWeeklyUserStats ¶
func (q *Queries) GetWeeklyUserStats(ctx context.Context, arg GetWeeklyUserStatsParams) ([]GetWeeklyUserStatsRow, error)
GetWeeklyUserStats
WITH params AS (
SELECT
$1::integer AS offset,
$2::integer AS limit
),
date_bounds AS (
SELECT
DATE_TRUNC('week', CURRENT_DATE - ((params.offset + params.limit - 1) * INTERVAL '1 week')) AS start_date,
DATE_TRUNC('week', CURRENT_DATE - (params.offset * INTERVAL '1 week')) AS end_date
FROM params
),
date_range AS (
SELECT generate_series(
date_bounds.start_date,
date_bounds.end_date,
INTERVAL '1 week'
)::date as activity_date
FROM date_bounds
),
user_activity AS (
SELECT DISTINCT
users.user_id,
DATE_TRUNC('week', COALESCE(votes.created_at, opinions.created_at))::date as activity_date,
CASE WHEN votes.user_id IS NOT NULL THEN 1 ELSE 0 END as has_voted,
CASE WHEN opinions.user_id IS NOT NULL THEN 1 ELSE 0 END as has_posted
FROM users
LEFT JOIN votes ON users.user_id = votes.user_id
LEFT JOIN opinions ON users.user_id = opinions.user_id
WHERE users.user_id != '00000000-0000-0000-0000-000000000001'::uuid
AND COALESCE(votes.created_at, opinions.created_at) IS NOT NULL
AND users.display_id IS NOT NULL
)
SELECT
date_range.activity_date,
COALESCE(COUNT(user_activity.user_id), 0)::integer as total_users,
COALESCE(SUM(has_voted), 0) as users_with_votes,
COALESCE(SUM(has_posted), 0) as users_with_posts,
COALESCE(SUM(CASE WHEN has_voted = 1 OR has_posted = 1 THEN 1 ELSE 0 END), 0)::integer as active_users
FROM date_range
LEFT JOIN user_activity ON date_range.activity_date = user_activity.activity_date
GROUP BY date_range.activity_date
ORDER BY date_range.activity_date DESC
func (*Queries) InvalidateDevice ¶
InvalidateDevice
UPDATE devices SET
enabled = false,
updated_at = CURRENT_TIMESTAMP
WHERE device_id = $1
func (*Queries) InvalidateDeviceByToken ¶
func (q *Queries) InvalidateDeviceByToken(ctx context.Context, arg InvalidateDeviceByTokenParams) error
InvalidateDeviceByToken
UPDATE devices SET
enabled = false,
updated_at = CURRENT_TIMESTAMP
WHERE device_token = $1 AND platform = $2
func (*Queries) ListTalkSessions ¶
func (q *Queries) ListTalkSessions(ctx context.Context, arg ListTalkSessionsParams) ([]ListTalkSessionsRow, error)
ListTalkSessions
SELECT
ts.talk_session_id, ts.owner_id, ts.theme, ts.scheduled_end_time, ts.created_at, ts.city, ts.prefecture, ts.description, ts.thumbnail_url, ts.restrictions, ts.updated_at, ts.hide_report, ts.organization_id, ts.organization_alias_id, ts.hide_top,
COALESCE(oc.opinion_count, 0) AS opinion_count,
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date,
COALESCE(organization_aliases.alias_name, '') AS alias_name,
COALESCE(organization_aliases.alias_id, '00000000-0000-0000-0000-000000000000'::uuid) AS alias_id,
COALESCE(organization_aliases.organization_id, '00000000-0000-0000-0000-000000000000'::uuid) AS organization_id,
COALESCE(votes.vote_count, 0) AS vote_count,
COALESCE(vote_users.vote_count, 0) AS vote_user_count,
talk_session_locations.talk_session_id as location_id,
COALESCE(ST_Y(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location))),0)::float AS latitude,
COALESCE(ST_X(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location))),0)::float AS longitude,
CASE
WHEN $3::float IS NOT NULL AND $4::float IS NOT NULL AND talk_session_locations.location IS NOT NULL
THEN ('SRID=4326;POINT(' ||
ST_Y(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location),4326)) || ' ' ||
ST_X(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location),4326)) || ')')::geometry
<->
('SRID=4326;POINT(' || $3::float || ' ' || $4::float || ')')::geometry
ELSE NULL
END AS distance
FROM talk_sessions ts
LEFT JOIN (
SELECT talk_session_id, COUNT(opinion_id) AS opinion_count
FROM opinions
GROUP BY talk_session_id
) oc ON ts.talk_session_id = oc.talk_session_id
LEFT JOIN users
ON ts.owner_id = users.user_id
LEFT JOIN (
SELECT talk_session_id, COUNT(DISTINCT vote_id) AS vote_count
FROM votes
GROUP BY talk_session_id
) votes ON ts.talk_session_id = votes.talk_session_id
LEFT JOIN (
SELECT talk_session_id, COUNT(DISTINCT user_id) AS vote_count
FROM votes
GROUP BY talk_session_id
) vote_users ON ts.talk_session_id = vote_users.talk_session_id
LEFT JOIN organization_aliases
ON ts.organization_alias_id = organization_aliases.alias_id
LEFT JOIN talk_session_locations
ON ts.talk_session_id = talk_session_locations.talk_session_id
WHERE
ts.hide_top = FALSE AND
CASE $5::text
WHEN 'finished' THEN ts.scheduled_end_time <= now()
WHEN 'open' THEN ts.scheduled_end_time > now()
ELSE TRUE
END
AND
(CASE
WHEN $6::text IS NOT NULL
THEN ts.theme LIKE '%' || $6::text || '%'
ELSE TRUE
END)
AND
(CASE $7::text
WHEN 'nearlest' THEN
$3::float IS NOT NULL AND $4::float IS NOT NULL
AND
('SRID=4326;POINT(' ||
ST_Y(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location),4326)) || ' ' ||
ST_X(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location),4326)) || ')')::geometry
<->
('SRID=4326;POINT(' || $3::float || ' ' || $4::float || ')')::geometry <= 100000
ELSE TRUE
END)
ORDER BY
CASE $7::text
WHEN 'oldest' THEN (EXTRACT(EPOCH FROM TIMESTAMP '2199-12-31 23:59:59') - EXTRACT(EPOCH FROM ts.created_at))*-1
WHEN 'mostReplies' THEN -oc.opinion_count
WHEN 'nearest' THEN (
CASE
WHEN $3::float IS NOT NULL AND $4::float IS NOT NULL AND talk_session_locations.location IS NOT NULL
THEN ('SRID=4326;POINT(' ||
ST_Y(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location),4326)) || ' ' ||
ST_X(ST_GeomFromWKB(ST_AsBinary(talk_session_locations.location),4326)) || ')')::geometry
<->
('SRID=4326;POINT(' || $3::float || ' ' || $4::float || ')')::geometry
ELSE NULL
END
)
ELSE EXTRACT(EPOCH FROM ts.created_at)*-1
END ASC
LIMIT $1 OFFSET $2
func (*Queries) MarkEventAsFailed ¶
func (q *Queries) MarkEventAsFailed(ctx context.Context, arg MarkEventAsFailedParams) (DomainEvent, error)
MarkEventAsFailed
UPDATE domain_events
SET status = 'failed',
failed_at = NOW(),
failure_reason = $2,
retry_count = retry_count + 1
WHERE id = $1
AND status IN ('pending', 'processing')
RETURNING id, event_type, event_data, aggregate_id, aggregate_type, status, occurred_at, processed_at, failed_at, failure_reason, retry_count
func (*Queries) MarkEventAsProcessed ¶
MarkEventAsProcessed
UPDATE domain_events
SET status = 'processed',
processed_at = NOW()
WHERE id = $1
AND status IN ('pending', 'processing', 'failed')
RETURNING id, event_type, event_data, aggregate_id, aggregate_type, status, occurred_at, processed_at, failed_at, failure_reason, retry_count
func (*Queries) ReactivateUser ¶
ReactivateUser
UPDATE "users" SET withdrawal_date = NULL WHERE user_id = $1
func (*Queries) SaveReportFeedback ¶
func (q *Queries) SaveReportFeedback(ctx context.Context, arg SaveReportFeedbackParams) error
SaveReportFeedback
INSERT INTO report_feedback (
report_feedback_id,
talk_session_report_history_id,
user_id,
feedback_type,
created_at
) VALUES (
$1,
$2,
$3,
$4,
$5
) ON CONFLICT (user_id, talk_session_report_history_id) DO NOTHING
func (*Queries) UpdateActionItem ¶
func (q *Queries) UpdateActionItem(ctx context.Context, arg UpdateActionItemParams) error
UpdateActionItem
UPDATE action_items
SET
content = $2,
status = $3,
sequence = $4,
updated_at = CURRENT_TIMESTAMP
WHERE action_item_id = $1
func (*Queries) UpdateDevice ¶
UpdateDevice
UPDATE devices SET
device_token = $2,
platform = $3,
device_name = COALESCE($4, device_name),
app_version = COALESCE($5, app_version),
os_version = COALESCE($6, os_version),
enabled = $7,
last_active_at = CURRENT_TIMESTAMP,
updated_at = $8
WHERE device_id = $1
RETURNING device_id, user_id, device_token, platform, enabled, created_at, updated_at, device_name, app_version, os_version, last_active_at
func (*Queries) UpdateDeviceActivity ¶
UpdateDeviceActivity
UPDATE devices SET
last_active_at = CURRENT_TIMESTAMP
WHERE device_id = $1
func (*Queries) UpdateNotificationPreference ¶
func (q *Queries) UpdateNotificationPreference(ctx context.Context, arg UpdateNotificationPreferenceParams) (NotificationPreference, error)
UpdateNotificationPreference
UPDATE notification_preferences SET
push_notification_enabled = $2
WHERE user_id = $1
RETURNING id, user_id, push_notification_enabled, created_at, updated_at
func (*Queries) UpdateOrCreateUserDemographic ¶
func (q *Queries) UpdateOrCreateUserDemographic(ctx context.Context, arg UpdateOrCreateUserDemographicParams) error
UpdateOrCreateUserDemographic
INSERT INTO user_demographics (
user_demographics_id,
user_id,
date_of_birth,
gender,
city,
prefecture,
created_at,
updated_at
) VALUES ($1, $2, $3, $4, $5, $6, now(), now())
ON CONFLICT (user_id)
DO UPDATE SET
date_of_birth = $3,
gender = $4,
city = $5,
prefecture = $6,
updated_at = now()
func (*Queries) UpdateOrganization ¶
func (q *Queries) UpdateOrganization(ctx context.Context, arg UpdateOrganizationParams) error
UpdateOrganization
UPDATE organizations SET
name = $2,
icon_url = $3
WHERE organization_id = $1
func (*Queries) UpdatePasswordAuth ¶
func (q *Queries) UpdatePasswordAuth(ctx context.Context, arg UpdatePasswordAuthParams) error
UpdatePasswordAuth
UPDATE password_auth SET password_hash = $2, salt = $3, required_password_change = $4, last_changed = $5, updated_at = $6 WHERE user_id = $1
func (*Queries) UpdateReportStatus ¶
func (q *Queries) UpdateReportStatus(ctx context.Context, arg UpdateReportStatusParams) error
UpdateReportStatus
UPDATE opinion_reports SET status = $1 WHERE opinion_report_id = $2 RETURNING opinion_report_id, opinion_id, talk_session_id, reporter_id, reason, status, created_at, updated_at, reason_text
func (*Queries) UpdateSequencesByActionItemID ¶
func (q *Queries) UpdateSequencesByActionItemID(ctx context.Context, arg UpdateSequencesByActionItemIDParams) error
指定したActionItemいよりSequenceが大きいものをすべて+1する
UPDATE action_items
SET
sequence = sequence + 1
WHERE talk_session_id = $1
AND sequence >= $2
func (*Queries) UpdateSession ¶
func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) error
UpdateSession
UPDATE sessions SET session_status = $2, last_activity_at = $3 WHERE session_id = $1
func (*Queries) UpdateTalkSessionConclusion ¶
func (q *Queries) UpdateTalkSessionConclusion(ctx context.Context, arg UpdateTalkSessionConclusionParams) error
UpdateTalkSessionConclusion
UPDATE talk_session_conclusions
SET
content = $2,
updated_at = CURRENT_TIMESTAMP
WHERE talk_session_id = $1
func (*Queries) UpdateTalkSessionHideReport ¶
func (q *Queries) UpdateTalkSessionHideReport(ctx context.Context, arg UpdateTalkSessionHideReportParams) error
UpdateTalkSessionHideReport
UPDATE talk_sessions SET hide_report = $2 WHERE talk_session_id = $1
func (*Queries) UpdateTalkSessionLocation ¶
func (q *Queries) UpdateTalkSessionLocation(ctx context.Context, arg UpdateTalkSessionLocationParams) error
UpdateTalkSessionLocation
UPDATE talk_session_locations SET location = ST_GeographyFromText($2) WHERE talk_session_id = $1
func (*Queries) UpdateUser ¶
func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) error
UpdateUser
UPDATE "users" SET display_id = $2, display_name = $3, icon_url = $4, email = $5, email_verified = $6, withdrawal_date = $7 WHERE user_id = $1
func (*Queries) UpdateUserEmailAndSubject ¶
func (q *Queries) UpdateUserEmailAndSubject(ctx context.Context, arg UpdateUserEmailAndSubjectParams) error
UpdateUserEmailAndSubject
UPDATE "users" SET email = $2 WHERE user_id = $1
func (*Queries) UpdateVote ¶
func (q *Queries) UpdateVote(ctx context.Context, arg UpdateVoteParams) error
UpdateVote
UPDATE votes SET vote_type = $3 WHERE user_id = $1 AND opinion_id = $2
func (*Queries) UpsertDevice ¶
UpsertDevice
INSERT INTO devices (
device_id,
user_id,
device_token,
platform,
device_name,
app_version,
os_version,
enabled,
created_at,
updated_at
) VALUES (
$1,
$2,
$3,
$4,
$5,
$6,
$7,
$8,
$9,
$10
) ON CONFLICT (user_id, device_token, platform) DO UPDATE SET
device_name = COALESCE(EXCLUDED.device_name, devices.device_name),
app_version = COALESCE(EXCLUDED.app_version, devices.app_version),
os_version = COALESCE(EXCLUDED.os_version, devices.os_version),
enabled = EXCLUDED.enabled,
last_active_at = CURRENT_TIMESTAMP,
updated_at = EXCLUDED.updated_at
RETURNING device_id, user_id, device_token, platform, enabled, created_at, updated_at, device_name, app_version, os_version, last_active_at
func (*Queries) UpsertNotificationPreference ¶
func (q *Queries) UpsertNotificationPreference(ctx context.Context, arg UpsertNotificationPreferenceParams) (NotificationPreference, error)
UpsertNotificationPreference
INSERT INTO notification_preferences (
user_id,
push_notification_enabled
) VALUES (
$1, $2
) ON CONFLICT (user_id) DO UPDATE SET
push_notification_enabled = EXCLUDED.push_notification_enabled
RETURNING id, user_id, push_notification_enabled, created_at, updated_at
func (*Queries) UserFindByDisplayID ¶
func (q *Queries) UserFindByDisplayID(ctx context.Context, displayID sql.NullString) (UserFindByDisplayIDRow, error)
UserFindByDisplayID
SELECT
users.user_id, users.display_id, users.display_name, users.icon_url, users.created_at, users.updated_at, users.email, users.email_verified, users.withdrawal_date
FROM
"users"
WHERE
display_id = $1
func (*Queries) VerifyUser ¶
VerifyUser
UPDATE "user_auths" SET is_verified = true WHERE user_id = $1
func (*Queries) WithdrawUser ¶
func (q *Queries) WithdrawUser(ctx context.Context, arg WithdrawUserParams) error
WithdrawUser
UPDATE "users" SET withdrawal_date = $2 WHERE user_id = $1
type ReportFeedback ¶
type RepresentativeOpinion ¶
type TalkSession ¶
type TalkSession struct {
TalkSessionID uuid.UUID
OwnerID uuid.UUID
Theme string
ScheduledEndTime time.Time
CreatedAt time.Time
City sql.NullString
Prefecture sql.NullString
Description sql.NullString
ThumbnailUrl sql.NullString
Restrictions talksession.Restrictions
UpdatedAt time.Time
HideReport sql.NullBool
OrganizationID uuid.NullUUID
OrganizationAliasID uuid.NullUUID
HideTop bool
}
type TalkSessionConclusion ¶
type TalkSessionLocation ¶
type TalkSessionReport ¶
type TalksessionConsent ¶
type TalksessionConsent struct {
TalksessionID uuid.UUID
UserID uuid.UUID
Restrictions talksession.Restrictions
ConsentedAt time.Time
}
type UpdateActionItemParams ¶
type UpdateDeviceParams ¶
type UpdateDeviceParams struct {
DeviceID uuid.UUID
DeviceToken string
Platform string
DeviceName sql.NullString
AppVersion sql.NullString
OsVersion sql.NullString
Enabled bool
UpdatedAt time.Time
}
type UpdateOrCreateUserDemographicParams ¶
type UpdateOrCreateUserDemographicParams struct {
UserDemographicsID uuid.UUID
UserID uuid.UUID
DateOfBirth sql.NullString
Gender sql.NullString
City sql.NullString
Prefecture sql.NullString
}
type UpdateOrganizationParams ¶
type UpdateOrganizationParams struct {
OrganizationID uuid.UUID
Name string
IconUrl sql.NullString
}
type UpdateSessionParams ¶
type UpdateUserEmailAndSubjectParams ¶
type UpdateUserEmailAndSubjectParams struct {
UserID uuid.UUID
Email sql.NullString
}
type UpdateUserParams ¶
type UpdateUserParams struct {
UserID uuid.UUID
DisplayID sql.NullString
DisplayName sql.NullString
IconUrl sql.NullString
Email sql.NullString
EmailVerified bool
WithdrawalDate sql.NullTime
}
type UpdateVoteParams ¶
type UpsertDeviceParams ¶
type User ¶
type User struct {
UserID uuid.UUID
DisplayID sql.NullString
DisplayName sql.NullString
IconUrl sql.NullString
CreatedAt time.Time
UpdatedAt time.Time
Email sql.NullString
EmailVerified bool
// ユーザーの退会日時。NULLの場合はアクティブユーザー
WithdrawalDate sql.NullTime
}
type UserDemographic ¶
type UserDemographic struct {
UserDemographicsID uuid.UUID
UserID uuid.UUID
DateOfBirth sql.NullString
Gender sql.NullString
City sql.NullString
CreatedAt time.Time
UpdatedAt time.Time
Prefecture sql.NullString
}
type UserFindByDisplayIDRow ¶
type UserFindByDisplayIDRow struct {
User User
}
type UserGroupInfo ¶
type UserStatusChangeLog ¶
type UserStatusChangeLog struct {
UserStatusChangeLogsID uuid.UUID
UserID uuid.UUID
Status string
Reason sql.NullString
ChangedAt time.Time
ChangedBy string
IpAddress pqtype.Inet
UserAgent sql.NullString
AdditionalData pqtype.NullRawMessage
CreatedAt time.Time
}
ユーザーのステータス変更履歴(退会・復活など)
Source Files
¶
- analysis.sql.go
- auth_states.sql.go
- count_by_talksession.sql.go
- create.sql.go
- create_organization.sql.go
- create_orguser.sql.go
- create_report.sql.go
- db.go
- delete_password_auth.sql.go
- device.sql.go
- domain_events.sql.go
- find_by_opinion.sql.go
- find_by_opinion_ids.sql.go
- find_by_opinions.sql.go
- find_by_talksession.sql.go
- find_by_talksession_id_and_user_id.sql.go
- find_by_user_and_version.sql.go
- find_by_version.sql.go
- find_latest_version.sql.go
- find_organization_by_code.sql.go
- find_organization_by_id.sql.go
- find_organization_by_ids.sql.go
- find_organization_by_name.sql.go
- find_organization_users_with_details.sql.go
- find_orguser_by_organization_id.sql.go
- find_orguser_by_organization_id_and_user_id.sql.go
- find_orguser_by_user_id.sql.go
- get_password_auth_by_user_id.sql.go
- insert_password.sql.go
- models.go
- notification_preferences.sql.go
- opinion.sql.go
- opinion_group_ratio.sql.go
- organization_alias.sql.go
- seed_opinions.sql.go
- session.sql.go
- talk_session.sql.go
- talk_session_result.sql.go
- update_organization.sql.go
- update_password_auth.sql.go
- update_report_status.sql.go
- user.sql.go
- user_stats.sql.go
- vote.sql.go