package invitationdb import ( "git.sendico.io/tech/sxchnge/bff/pkg/db/repository" "git.sendico.io/tech/sxchnge/bff/pkg/db/repository/builder" ri "git.sendico.io/tech/sxchnge/bff/pkg/db/repository/index" "git.sendico.io/tech/sxchnge/bff/pkg/model" ) const uniquePendingInvitationEmailIndexName = "unique_pending_invitation_email_per_org" func pendingInvitationEmailIndexDefinition() *ri.Definition { statusValues := model.PendingInvitationStatusValues() statuses := make([]any, 0, len(statusValues)) for _, status := range statusValues { statuses = append(statuses, status) } return &ri.Definition{ Keys: []ri.Key{ {Field: repository.OrgField().Build(), Sort: ri.Asc}, {Field: "description.email", Sort: ri.Asc}, }, Unique: true, Name: uniquePendingInvitationEmailIndexName, PartialFilter: repository.Query(). In(repository.Field("status"), statuses...). Comparison(repository.Field("description.email"), builder.Type, "string"), } }