Files
2026-07-13 12:31:34 +08:00

83 lines
2.3 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import print_function, unicode_literals, absolute_import, division
from datetime import datetime
from peewee import CharField, IntegerField, DateTimeField, BooleanField, AutoField, TextField
from domain_admin.enums.source_enum import SourceEnum
from domain_admin.model.base_model import BaseModel
from domain_admin.utils import datetime_util, time_util
class AddressModel(BaseModel):
"""
域名主机ip地址
@since v1.2.24
"""
id = AutoField(primary_key=True)
# 域名
domain_id = CharField(null=False)
# 主机地址
host = CharField(default="")
# SSL签发时间
ssl_start_time = DateTimeField(default=None, null=True)
# SSL过期时间
ssl_expire_time = DateTimeField(default=None, null=True)
# SSL过期剩余天数,仅用于排序
ssl_expire_days = IntegerField(default=0, null=False)
# 添加方式 0 自动 1 手动
# @since v1.6.8
source = IntegerField(default=SourceEnum.AUTO, null=False)
# 备注说明
# @since v1.6.8
comment = TextField(default='', null=False)
# 创建时间
create_time = DateTimeField(default=datetime.now)
# 更新时间
update_time = DateTimeField(default=datetime.now)
class Meta:
table_name = 'tb_address'
indexes = (
# 唯一索引
(('domain_id', 'host'), True), # Note the trailing comma!
)
@property
def create_time_label(self):
return datetime_util.format_datetime_label(self.create_time)
@property
def update_time_label(self):
return datetime_util.time_for_human(self.update_time)
@property
def ssl_start_date(self):
if self.ssl_start_time and isinstance(self.ssl_start_time, datetime):
return self.ssl_start_time.strftime('%Y-%m-%d')
@property
def ssl_expire_date(self):
if self.ssl_expire_time and isinstance(self.ssl_expire_time, datetime):
return self.ssl_expire_time.strftime('%Y-%m-%d')
@property
def real_time_ssl_expire_days(self):
"""
实时ssl过期剩余天数
ssl_expire_days 是更新数据时所计算的时间,有滞后性
:return:
"""
return time_util.get_diff_days(datetime.now(), self.ssl_expire_time)