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

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class SmsVerification extends Model
{
public const SCENE_PARTICIPANT_LOGIN = 'participant_login';
1 month ago
public const SCENE_AUDIENCE_LOGIN = 'audience_login';
public const PROVIDER_DISABLED = 'disabled';
public const PROVIDER_TENCENTCLOUD = 'tencentcloud';
1 month ago
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',
];
1 month ago
public static function loginSceneFromPortal(?string $portal): string
{
return $portal === 'audience' ? self::SCENE_AUDIENCE_LOGIN : self::SCENE_PARTICIPANT_LOGIN;
}
}