package emailcli import ( "context" "fmt" ) func (c *Client) CreateQuota(ctx context.Context, req CreateQuotaReq) (*MailQuota, error) { return post[*MailQuota](c, ctx, "/api/v1/quotas", req) } func (c *Client) ListQuotas(ctx context.Context, q QuotaListQuery) (*PaginationResult[MailQuota], error) { params := mergeParams(paginationParams(q.PaginationQuery), map[string]interface{}{ "account_id": q.AccountID, "user_id": q.UserID, "status": q.Status, }) return get[*PaginationResult[MailQuota]](c, ctx, "/api/v1/quotas", buildQuery(params)) } func (c *Client) GetQuotaSummary(ctx context.Context, accountID uint) (*QuotaSummary, error) { return get[*QuotaSummary](c, ctx, fmt.Sprintf("/api/v1/quotas/summary/%d", accountID), nil) } func (c *Client) UpdateQuota(ctx context.Context, id uint, req UpdateQuotaReq) (*MailQuota, error) { return put[*MailQuota](c, ctx, fmt.Sprintf("/api/v1/quotas/%d", id), req) } func (c *Client) DeleteQuota(ctx context.Context, id uint) error { _, err := del[any](c, ctx, fmt.Sprintf("/api/v1/quotas/%d", id)) return err }