52 lines
1.5 KiB
Go
52 lines
1.5 KiB
Go
package contract
|
|
|
|
type VoucherResponse struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
Email string `json:"email"`
|
|
PhoneNumber string `json:"phone_number"`
|
|
VoucherCode string `json:"voucher_code"`
|
|
WinnerNumber int `json:"winner_number"`
|
|
IsWinner bool `json:"is_winner"`
|
|
}
|
|
|
|
type VoucherSpinResponse struct {
|
|
VoucherCode string `json:"voucher_code"`
|
|
Name string `json:"name"`
|
|
PhoneNumber string `json:"phone_number"` // This will be masked
|
|
IsWinner bool `json:"is_winner"`
|
|
}
|
|
|
|
type ListVouchersForSpinRequest struct {
|
|
Limit int `json:"limit" validate:"min=1,max=50"`
|
|
}
|
|
|
|
type ListVouchersForSpinResponse struct {
|
|
Vouchers []VoucherSpinResponse `json:"vouchers"`
|
|
Count int `json:"count"`
|
|
}
|
|
|
|
type PaginatedVoucherResponse struct {
|
|
Data []VoucherResponse `json:"data"`
|
|
TotalCount int `json:"total_count"`
|
|
Page int `json:"page"`
|
|
Limit int `json:"limit"`
|
|
TotalPages int `json:"total_pages"`
|
|
}
|
|
|
|
type VoucherRow struct {
|
|
RowNumber int `json:"row_number"`
|
|
Vouchers []VoucherSpinResponse `json:"vouchers"`
|
|
}
|
|
|
|
type ListVouchersByRowsRequest struct {
|
|
Rows int `json:"rows" validate:"min=1,max=10"`
|
|
WinnerNumber *int `json:"winner_number,omitempty"`
|
|
}
|
|
|
|
type ListVouchersByRowsResponse struct {
|
|
Rows []VoucherRow `json:"rows"`
|
|
TotalRows int `json:"total_rows"`
|
|
TotalVouchers int `json:"total_vouchers"`
|
|
}
|