package client import ( "context" "google.golang.org/grpc" activityv1 "hyapp.local/api/proto/activity/v1" ) // MessageInboxClient abstracts gateway access to the backend-owned system/activity inbox. type MessageInboxClient interface { ListMessageTabs(ctx context.Context, req *activityv1.ListMessageTabsRequest) (*activityv1.ListMessageTabsResponse, error) ListInboxMessages(ctx context.Context, req *activityv1.ListInboxMessagesRequest) (*activityv1.ListInboxMessagesResponse, error) MarkInboxMessageRead(ctx context.Context, req *activityv1.MarkInboxMessageReadRequest) (*activityv1.MarkInboxMessageReadResponse, error) MarkInboxSectionRead(ctx context.Context, req *activityv1.MarkInboxSectionReadRequest) (*activityv1.MarkInboxSectionReadResponse, error) DeleteInboxMessage(ctx context.Context, req *activityv1.DeleteInboxMessageRequest) (*activityv1.DeleteInboxMessageResponse, error) } // MessageActionConfirmClient abstracts gateway access to generic IM action confirmations. type MessageActionConfirmClient interface { AcceptActionConfirm(ctx context.Context, req *activityv1.AcceptActionConfirmRequest) (*activityv1.AcceptActionConfirmResponse, error) RejectActionConfirm(ctx context.Context, req *activityv1.RejectActionConfirmRequest) (*activityv1.RejectActionConfirmResponse, error) BatchGetActionConfirmStatus(ctx context.Context, req *activityv1.BatchGetActionConfirmStatusRequest) (*activityv1.BatchGetActionConfirmStatusResponse, error) ListConversationActionConfirms(ctx context.Context, req *activityv1.ListConversationActionConfirmsRequest) (*activityv1.ListConversationActionConfirmsResponse, error) } type grpcMessageInboxClient struct { client activityv1.MessageInboxServiceClient } type grpcMessageActionConfirmClient struct { client activityv1.MessageActionConfirmServiceClient } // NewGRPCMessageInboxClient builds an inbox client backed by activity-service MessageInboxService. func NewGRPCMessageInboxClient(conn *grpc.ClientConn) MessageInboxClient { return &grpcMessageInboxClient{client: activityv1.NewMessageInboxServiceClient(conn)} } // NewGRPCMessageActionConfirmClient builds an action-confirm client backed by activity-service. func NewGRPCMessageActionConfirmClient(conn *grpc.ClientConn) MessageActionConfirmClient { return &grpcMessageActionConfirmClient{client: activityv1.NewMessageActionConfirmServiceClient(conn)} } func (c *grpcMessageInboxClient) ListMessageTabs(ctx context.Context, req *activityv1.ListMessageTabsRequest) (*activityv1.ListMessageTabsResponse, error) { return c.client.ListMessageTabs(ctx, req) } func (c *grpcMessageInboxClient) ListInboxMessages(ctx context.Context, req *activityv1.ListInboxMessagesRequest) (*activityv1.ListInboxMessagesResponse, error) { return c.client.ListInboxMessages(ctx, req) } func (c *grpcMessageInboxClient) MarkInboxMessageRead(ctx context.Context, req *activityv1.MarkInboxMessageReadRequest) (*activityv1.MarkInboxMessageReadResponse, error) { return c.client.MarkInboxMessageRead(ctx, req) } func (c *grpcMessageInboxClient) MarkInboxSectionRead(ctx context.Context, req *activityv1.MarkInboxSectionReadRequest) (*activityv1.MarkInboxSectionReadResponse, error) { return c.client.MarkInboxSectionRead(ctx, req) } func (c *grpcMessageInboxClient) DeleteInboxMessage(ctx context.Context, req *activityv1.DeleteInboxMessageRequest) (*activityv1.DeleteInboxMessageResponse, error) { return c.client.DeleteInboxMessage(ctx, req) } func (c *grpcMessageActionConfirmClient) AcceptActionConfirm(ctx context.Context, req *activityv1.AcceptActionConfirmRequest) (*activityv1.AcceptActionConfirmResponse, error) { return c.client.AcceptActionConfirm(ctx, req) } func (c *grpcMessageActionConfirmClient) RejectActionConfirm(ctx context.Context, req *activityv1.RejectActionConfirmRequest) (*activityv1.RejectActionConfirmResponse, error) { return c.client.RejectActionConfirm(ctx, req) } func (c *grpcMessageActionConfirmClient) BatchGetActionConfirmStatus(ctx context.Context, req *activityv1.BatchGetActionConfirmStatusRequest) (*activityv1.BatchGetActionConfirmStatusResponse, error) { return c.client.BatchGetActionConfirmStatus(ctx, req) } func (c *grpcMessageActionConfirmClient) ListConversationActionConfirms(ctx context.Context, req *activityv1.ListConversationActionConfirmsRequest) (*activityv1.ListConversationActionConfirmsResponse, error) { return c.client.ListConversationActionConfirms(ctx, req) }