Constants

STATUS_DRAFT

STATUS_DRAFT

STATUS_AVAILABLE

STATUS_AVAILABLE

STATUS_SOLD

STATUS_SOLD

SCOPE_PUBLIC

SCOPE_PUBLIC

SCOPE_AUTH

SCOPE_AUTH

SCOPE_UNLIMITED

SCOPE_UNLIMITED

SCOPE_REPORTED

SCOPE_REPORTED

MAX_BUMP_TIMES

MAX_BUMP_TIMES

Properties

$id

$id : integer

Type

integer

$created_at

$created_at : \Carbon\Carbon|null

Type

\Carbon\Carbon|null

$updated_at

$updated_at : \Carbon\Carbon|null

Type

\Carbon\Carbon|null

$listed_at

$listed_at : \Carbon\Carbon

Type

\Carbon\Carbon

$name

$name : string

Type

string

$description

$description : string|null

Type

string|null

$author_user_id

$author_user_id : integer

Type

integer

$status

$status : integer

0 == inactive, 1 == available, 2 == sold

Type

integer

$sold_to_user_id

$sold_to_user_id : integer|null

Type

integer|null

$price_value

$price_value : integer|null

Type

integer|null

$bumped_times

$bumped_times : integer

2 max

Type

integer

$currency_code

$currency_code : string|null

Type

string|null

$reported_times

$reported_times : integer

Type

integer

$price

$price : string|null

Type

string|null

$author

$author : \App\User

Type

\App\User

$bumps_left

$bumps_left : integer

Type

integer

$displayable

$displayable : boolean

Type

boolean

$expired

$expired : boolean

Type

boolean

$just_bumped

$just_bumped : boolean

Type

boolean

$money

$money : \Money|null

Type

\Money|null

$images

$images : \Illuminate\Database\Eloquent\Collection|array<mixed,\App\Image>

Type

\Illuminate\Database\Eloquent\Collection|array<mixed,\App\Image>

$reportedBy

$reportedBy : \Illuminate\Database\Eloquent\Collection|array<mixed,\App\User>

Type

\Illuminate\Database\Eloquent\Collection|array<mixed,\App\User>

$soldTo

$soldTo : \App\User|null

Type

\App\User|null

$currency

$currency : mixed

Type

mixed

$dates

$dates : 

Type

$with

$with : 

Type

$fillable

$fillable : 

Type

Methods

scopeAfter()

scopeAfter(\Illuminate\Database\Eloquent\Builder  $query, \Illuminate\Database\Eloquent\Model|mixed  $model) : \Illuminate\Database\Eloquent\Builder

Modifies the query to only return entries after a particular entry

Parameters

\Illuminate\Database\Eloquent\Builder $query
\Illuminate\Database\Eloquent\Model|mixed $model

Model instance or value of primary key

Returns

\Illuminate\Database\Eloquent\Builder

getOrderBy()

getOrderBy() : array<mixed,string>|string

Returns

array<mixed,string>|string

images()

images() : \Illuminate\Database\Eloquent\Relations\HasMany

Images relation

Returns

\Illuminate\Database\Eloquent\Relations\HasMany

author()

author() : \Illuminate\Database\Eloquent\Relations\BelongsTo

Author user relation

Returns

\Illuminate\Database\Eloquent\Relations\BelongsTo

soldTo()

soldTo() : \Illuminate\Database\Eloquent\Relations\BelongsTo

Relation to the user that the offer has been sold to

Returns

\Illuminate\Database\Eloquent\Relations\BelongsTo

reportedBy()

reportedBy() : \Illuminate\Database\Eloquent\Relations\BelongsToMany

Relation to users that have reported this offer

Returns

\Illuminate\Database\Eloquent\Relations\BelongsToMany

getMoneyAttribute()

getMoneyAttribute() : \Money\Money|null

Returns

\Money\Money|null

getPriceAttribute()

getPriceAttribute() : string|null

Returns

string|null

setPriceAttribute()

setPriceAttribute(integer  $price) 

Parameters

integer $price

price value

setCurrencyAttribute()

setCurrencyAttribute(string  $currency) 

Parameters

string $currency

currency code

removedFromTimestamp()

removedFromTimestamp() : \Illuminate\Support\Carbon

Returns the date that offers have to be newer than to not be removed

Returns

\Illuminate\Support\Carbon

getExpiredAttribute()

getExpiredAttribute() : boolean

Whether this offer is expired

Returns

boolean

getDisplayableAttribute()

getDisplayableAttribute() : boolean

Whether this offer can be displayed

Returns

boolean

getBumpsLeftAttribute()

getBumpsLeftAttribute() : integer

The amount of times this offer can be bumped

Returns

integer

getJustBumpedAttribute()

getJustBumpedAttribute() : boolean

Whether this offer has just been created / bumped

Returns

boolean

scopeToBeRemoved()

scopeToBeRemoved(\Illuminate\Database\Eloquent\Builder  $query) : \Illuminate\Database\Eloquent\Builder

Limits the query to only return items that should be removed

Parameters

\Illuminate\Database\Eloquent\Builder $query

Returns

\Illuminate\Database\Eloquent\Builder

scopePublic()

scopePublic(\Illuminate\Database\Eloquent\Builder  $query) : \Illuminate\Database\Eloquent\Builder

Limits the query to only return items that are accessible publicly

Parameters

\Illuminate\Database\Eloquent\Builder $query

Returns

\Illuminate\Database\Eloquent\Builder

scopeUnlimited()

scopeUnlimited(\Illuminate\Database\Eloquent\Builder  $query) : \Illuminate\Database\Eloquent\Builder

Does not limit the query

Parameters

\Illuminate\Database\Eloquent\Builder $query

Returns

\Illuminate\Database\Eloquent\Builder

scopeAuth()

scopeAuth(\Illuminate\Database\Eloquent\Builder  $query) : \Illuminate\Database\Eloquent\Builder

Limits the query to only return items that are accessible publicly and that the current user owns.

Parameters

\Illuminate\Database\Eloquent\Builder $query

Returns

\Illuminate\Database\Eloquent\Builder

scopeReported()

scopeReported(\Illuminate\Database\Eloquent\Builder  $query) : \Illuminate\Database\Eloquent\Builder

Limits the query to only return items that have been reported to administrators.

Parameters

\Illuminate\Database\Eloquent\Builder $query

Returns

\Illuminate\Database\Eloquent\Builder

getPublicScopes()

getPublicScopes() : array<mixed,string>

Returns a list of scopes that can be used from outside of the app

Returns

array<mixed,string>

canUsePublicScope()

canUsePublicScope(string  $scopeName, \App\User|null  $user = null) : boolean

Returns whether a certain user can use a particular scope

Parameters

string $scopeName
\App\User|null $user

Returns

boolean

validatePublicScopeParams()

validatePublicScopeParams(string  $scopeName, array<mixed,string>  $columnNames) : boolean

Determines whether the user is allowed to additionally limit his query with provided column names when requesting a particular scope

Parameters

string $scopeName
array<mixed,string> $columnNames

Returns

boolean

toSearchableArray()

toSearchableArray() 

getValidationRules()

getValidationRules(\Illuminate\Validation\Validator  $validator = null, boolean  $requireImages = true) : array

Get validation rules for a creation request.

Parameters

\Illuminate\Validation\Validator $validator
boolean $requireImages

Returns

array

bump()

bump() : boolean

'Bump' the offer - make it appear as new. Returns the success.

Returns

boolean

report()

report(integer  $userId) : boolean

Report the offer to administrators

Parameters

integer $userId

Returns

boolean

markAppropriate()

markAppropriate() : boolean

Mark the reported offer as appropriate

Returns

boolean

resetAppropriateness()

resetAppropriateness() : boolean

Clear the list of users that have reported this offer

Returns

boolean

after()

after(mixed  $model) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $model

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

auth()

auth() : \Illuminate\Database\Eloquent\Builder|\App\Offer

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

public()

public() : \Illuminate\Database\Eloquent\Builder|\App\Offer

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

reported()

reported() : \Illuminate\Database\Eloquent\Builder|\App\Offer

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

toBeRemoved()

toBeRemoved() : \Illuminate\Database\Eloquent\Builder|\App\Offer

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

unlimited()

unlimited() : \Illuminate\Database\Eloquent\Builder|\App\Offer

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereAuthorUserId()

whereAuthorUserId(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereBumpedTimes()

whereBumpedTimes(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereCreatedAt()

whereCreatedAt(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereCurrencyCode()

whereCurrencyCode(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereDescription()

whereDescription(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereId()

whereId(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereListedAt()

whereListedAt(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereName()

whereName(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

wherePriceValue()

wherePriceValue(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereReportedTimes()

whereReportedTimes(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereSoldToUserId()

whereSoldToUserId(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereStatus()

whereStatus(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

whereUpdatedAt()

whereUpdatedAt(mixed  $value) : \Illuminate\Database\Eloquent\Builder|\App\Offer

Parameters

mixed $value

Returns

\Illuminate\Database\Eloquent\Builder|\App\Offer

boot()

boot() 

expiredFromTimestamp()

expiredFromTimestamp() : \Illuminate\Support\Carbon

Returns the date that offers have to be newer than to not be considered expired

Returns

\Illuminate\Support\Carbon