// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.

package ozone

// schema: tools.ozone.moderation.getAccountTimeline

import (
	"context"

	"github.com/bluesky-social/indigo/lex/util"
)

// ModerationGetAccountTimeline_Output is the output of a tools.ozone.moderation.getAccountTimeline call.
type ModerationGetAccountTimeline_Output struct {
	Timeline []*ModerationGetAccountTimeline_TimelineItem `json:"timeline" cborgen:"timeline"`
}

// ModerationGetAccountTimeline_TimelineItem is a "timelineItem" in the tools.ozone.moderation.getAccountTimeline schema.
type ModerationGetAccountTimeline_TimelineItem struct {
	Day     string                                              `json:"day" cborgen:"day"`
	Summary []*ModerationGetAccountTimeline_TimelineItemSummary `json:"summary" cborgen:"summary"`
}

// ModerationGetAccountTimeline_TimelineItemSummary is a "timelineItemSummary" in the tools.ozone.moderation.getAccountTimeline schema.
type ModerationGetAccountTimeline_TimelineItemSummary struct {
	Count            int64  `json:"count" cborgen:"count"`
	EventSubjectType string `json:"eventSubjectType" cborgen:"eventSubjectType"`
	EventType        string `json:"eventType" cborgen:"eventType"`
}

// ModerationGetAccountTimeline calls the XRPC method "tools.ozone.moderation.getAccountTimeline".
func ModerationGetAccountTimeline(ctx context.Context, c util.LexClient, did string) (*ModerationGetAccountTimeline_Output, error) {
	var out ModerationGetAccountTimeline_Output

	params := map[string]interface{}{}
	params["did"] = did
	if err := c.LexDo(ctx, util.Query, "", "tools.ozone.moderation.getAccountTimeline", params, nil, &out); err != nil {
		return nil, err
	}

	return &out, nil
}
