github.com/polygon-io/client-go@v1.16.4/rest/models/splits.go (about)

     1  package models
     2  
     3  // ListSplitsParams is the set of parameters for the ListSplits method.
     4  type ListSplitsParams struct {
     5  	// Return the stock splits that contain this ticker.
     6  	TickerEQ  *string `query:"ticker"`
     7  	TickerLT  *string `query:"ticker.lt"`
     8  	TickerLTE *string `query:"ticker.lte"`
     9  	TickerGT  *string `query:"ticker.gt"`
    10  	TickerGTE *string `query:"ticker.gte"`
    11  
    12  	// Query by execution date with the format YYYY-MM-DD.
    13  	ExecutionDateEQ  *Date `query:"execution_date"`
    14  	ExecutionDateLT  *Date `query:"execution_date.lt"`
    15  	ExecutionDateLTE *Date `query:"execution_date.lte"`
    16  	ExecutionDateGT  *Date `query:"execution_date.gt"`
    17  	ExecutionDateGTE *Date `query:"execution_date.gte"`
    18  
    19  	// Query for reverse stock splits. A split ratio where split_from is greater than split_to represents a reverse
    20  	// split. By default this filter is not used.
    21  	ReverseSplit *bool `query:"reverse_split"`
    22  
    23  	// Order results based on the sort field.
    24  	Order *Order `query:"order"`
    25  
    26  	// Limit the number of results returned, default is 10 and max is 1000.
    27  	Limit *int `query:"limit"`
    28  
    29  	// Sort field used for ordering.
    30  	Sort *Sort `query:"sort"`
    31  }
    32  
    33  func (p ListSplitsParams) WithTicker(c Comparator, q string) *ListSplitsParams {
    34  	switch c {
    35  	case EQ:
    36  		p.TickerEQ = &q
    37  	case LT:
    38  		p.TickerLT = &q
    39  	case LTE:
    40  		p.TickerLTE = &q
    41  	case GT:
    42  		p.TickerGT = &q
    43  	case GTE:
    44  		p.TickerGTE = &q
    45  	}
    46  	return &p
    47  }
    48  
    49  func (p ListSplitsParams) WithExecutionDate(c Comparator, q Date) *ListSplitsParams {
    50  	switch c {
    51  	case EQ:
    52  		p.ExecutionDateEQ = &q
    53  	case LT:
    54  		p.ExecutionDateLT = &q
    55  	case LTE:
    56  		p.ExecutionDateLTE = &q
    57  	case GT:
    58  		p.ExecutionDateGT = &q
    59  	case GTE:
    60  		p.ExecutionDateGTE = &q
    61  	}
    62  	return &p
    63  }
    64  
    65  func (p ListSplitsParams) WithReverseSplit(q bool) *ListSplitsParams {
    66  	p.ReverseSplit = &q
    67  	return &p
    68  }
    69  
    70  func (p ListSplitsParams) WithOrder(q Order) *ListSplitsParams {
    71  	p.Order = &q
    72  	return &p
    73  }
    74  
    75  func (p ListSplitsParams) WithLimit(q int) *ListSplitsParams {
    76  	p.Limit = &q
    77  	return &p
    78  }
    79  
    80  func (p ListSplitsParams) WithSort(q Sort) *ListSplitsParams {
    81  	p.Sort = &q
    82  	return &p
    83  }
    84  
    85  // ListSplitsResponse is the response returned by the ListSplits method.
    86  type ListSplitsResponse struct {
    87  	BaseResponse
    88  	Results []Split `json:"results,omitempty"`
    89  }
    90  
    91  // Split contains detailed information on a specified stock split.
    92  type Split struct {
    93  	ExecutionDate Date    `json:"execution_date,omitempty"`
    94  	SplitFrom     float64 `json:"split_from,omitempty"`
    95  	SplitTo       float64 `json:"split_to,omitempty"`
    96  	Ticker        string  `json:"ticker,omitempty"`
    97  }