forked from free-lancers/electricity_bill_calc_service
		
	enhance(types):增加若干常用方法。
This commit is contained in:
		| @@ -14,6 +14,18 @@ type DateRange struct { | |||||||
| 	pgtype.Range[Date] | 	pgtype.Range[Date] | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func NewEmptyDateRange() DateRange { | ||||||
|  | 	return DateRange{ | ||||||
|  | 		Range: pgtype.Range[Date]{ | ||||||
|  | 			Lower:     MinDate(), | ||||||
|  | 			LowerType: pgtype.Unbounded, | ||||||
|  | 			Upper:     MaxDate(), | ||||||
|  | 			UpperType: pgtype.Unbounded, | ||||||
|  | 			Valid:     true, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| func NewDateRange(lower *Date, upper *Date) DateRange { | func NewDateRange(lower *Date, upper *Date) DateRange { | ||||||
| 	return DateRange{ | 	return DateRange{ | ||||||
| 		Range: pgtype.Range[Date]{ | 		Range: pgtype.Range[Date]{ | ||||||
| @@ -78,3 +90,23 @@ func (dr *DateRange) UnmarshalJSON(data []byte) error { | |||||||
| 	dr.Range = r | 	dr.Range = r | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (dr *DateRange) SetLower(lower Date, bound pgtype.BoundType) { | ||||||
|  | 	dr.Range.Lower = lower | ||||||
|  | 	dr.Range.LowerType = bound | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (dr *DateRange) SetLowerUnbounded() { | ||||||
|  | 	dr.Range.Lower = MinDate() | ||||||
|  | 	dr.Range.LowerType = pgtype.Unbounded | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (dr *DateRange) SetUpper(upper Date, bound pgtype.BoundType) { | ||||||
|  | 	dr.Range.Upper = upper | ||||||
|  | 	dr.Range.UpperType = bound | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (dr *DateRange) SetUpperUnbounded() { | ||||||
|  | 	dr.Range.Upper = MaxDate() | ||||||
|  | 	dr.Range.UpperType = pgtype.Unbounded | ||||||
|  | } | ||||||
|   | |||||||
| @@ -14,6 +14,18 @@ type DateTimeRange struct { | |||||||
| 	pgtype.Range[DateTime] | 	pgtype.Range[DateTime] | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func NewEmptyDateTimeRange() DateTimeRange { | ||||||
|  | 	return DateTimeRange{ | ||||||
|  | 		Range: pgtype.Range[DateTime]{ | ||||||
|  | 			Lower:     MinDateTime(), | ||||||
|  | 			LowerType: pgtype.Unbounded, | ||||||
|  | 			Upper:     MaxDateTime(), | ||||||
|  | 			UpperType: pgtype.Unbounded, | ||||||
|  | 			Valid:     true, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| func NewDateTimeRange(lower *DateTime, upper *DateTime) DateTimeRange { | func NewDateTimeRange(lower *DateTime, upper *DateTime) DateTimeRange { | ||||||
| 	return DateTimeRange{ | 	return DateTimeRange{ | ||||||
| 		Range: pgtype.Range[DateTime]{ | 		Range: pgtype.Range[DateTime]{ | ||||||
| @@ -78,3 +90,23 @@ func (dr *DateTimeRange) UnmarshalJSON(data []byte) error { | |||||||
| 	dr.Range = r | 	dr.Range = r | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (dr *DateTimeRange) SetLower(lower DateTime, bound pgtype.BoundType) { | ||||||
|  | 	dr.Range.Lower = lower | ||||||
|  | 	dr.Range.LowerType = bound | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (dr *DateTimeRange) SetLowerUnbounded() { | ||||||
|  | 	dr.Range.Lower = MinDateTime() | ||||||
|  | 	dr.Range.LowerType = pgtype.Unbounded | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (dr *DateTimeRange) SetUpper(upper DateTime, bound pgtype.BoundType) { | ||||||
|  | 	dr.Range.Upper = upper | ||||||
|  | 	dr.Range.UpperType = bound | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (dr *DateTimeRange) SetUpperUnbounded() { | ||||||
|  | 	dr.Range.Upper = MaxDateTime() | ||||||
|  | 	dr.Range.UpperType = pgtype.Unbounded | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user