You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.4 KiB
58 lines
1.4 KiB
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class SmsVerification extends Model
|
|
{
|
|
public const SCENE_PARTICIPANT_LOGIN = 'participant_login';
|
|
|
|
public const SCENE_AUDIENCE_LOGIN = 'audience_login';
|
|
|
|
public const PROVIDER_DISABLED = 'disabled';
|
|
|
|
public const PROVIDER_TENCENTCLOUD = 'tencentcloud';
|
|
|
|
public const PROVIDER_SUBMAIL = 'submail';
|
|
|
|
public const STATUS_PENDING = 'pending';
|
|
public const STATUS_SENT = 'sent';
|
|
public const STATUS_FAILED = 'failed';
|
|
public const STATUS_USED = 'used';
|
|
public const STATUS_EXPIRED = 'expired';
|
|
|
|
protected $fillable = [
|
|
'scene',
|
|
'mobile',
|
|
'code',
|
|
'provider',
|
|
'status',
|
|
'template_id',
|
|
'sign_name',
|
|
'request_payload_json',
|
|
'response_json',
|
|
'provider_request_id',
|
|
'provider_code',
|
|
'provider_message',
|
|
'sent_at',
|
|
'failed_at',
|
|
'used_at',
|
|
'expires_at',
|
|
];
|
|
|
|
protected $casts = [
|
|
'request_payload_json' => 'array',
|
|
'response_json' => 'array',
|
|
'sent_at' => 'datetime',
|
|
'failed_at' => 'datetime',
|
|
'used_at' => 'datetime',
|
|
'expires_at' => 'datetime',
|
|
];
|
|
|
|
public static function loginSceneFromPortal(?string $portal): string
|
|
{
|
|
return $portal === 'audience' ? self::SCENE_AUDIENCE_LOGIN : self::SCENE_PARTICIPANT_LOGIN;
|
|
}
|
|
}
|