59 lines
2.8 KiB
Python
59 lines
2.8 KiB
Python
from tortoise import fields
|
|
|
|
from .base import BaseModel, TimestampMixin
|
|
|
|
|
|
class BaseCompanyModel(BaseModel, TimestampMixin):
|
|
source_company_id = fields.CharField(max_length=128, unique=True, index=True, description="来源站点公司ID")
|
|
company_name = fields.CharField(max_length=255, index=True, description="公司名称")
|
|
company_type = fields.CharField(max_length=100, null=True, description="公司性质")
|
|
industry = fields.CharField(max_length=255, null=True, description="行业")
|
|
company_size = fields.CharField(max_length=100, null=True, description="公司规模")
|
|
financing_stage = fields.CharField(max_length=100, null=True, description="融资阶段")
|
|
city = fields.CharField(max_length=100, null=True, description="城市")
|
|
address = fields.TextField(null=True, description="地址")
|
|
website = fields.CharField(max_length=500, null=True, description="官网")
|
|
logo_url = fields.CharField(max_length=1000, null=True, description="Logo地址")
|
|
description = fields.TextField(null=True, description="公司简介")
|
|
raw_json = fields.JSONField(description="原始公司JSON")
|
|
first_crawled_at = fields.DatetimeField(index=True, description="首次抓取时间")
|
|
last_crawled_at = fields.DatetimeField(index=True, description="最后抓取时间")
|
|
|
|
class Meta:
|
|
abstract = True
|
|
|
|
|
|
class BossCompany(BaseCompanyModel):
|
|
class Meta:
|
|
table = "boss_company"
|
|
|
|
|
|
class QcwyCompany(BaseCompanyModel):
|
|
class Meta:
|
|
table = "qcwy_company"
|
|
|
|
|
|
class ZhilianCompany(BaseCompanyModel):
|
|
class Meta:
|
|
table = "zhilian_company"
|
|
|
|
|
|
class CompanyCleaningQueue(BaseModel, TimestampMixin):
|
|
source = fields.CharField(max_length=20, index=True, description="来源平台")
|
|
company_id = fields.CharField(max_length=128, index=True, description="来源站点公司ID")
|
|
company_name = fields.CharField(max_length=255, null=True, description="公司名称")
|
|
status = fields.CharField(max_length=20, default="pending", index=True, description="状态")
|
|
error_msg = fields.TextField(null=True, description="错误信息")
|
|
retry_count = fields.IntField(default=0, description="重试次数")
|
|
started_at = fields.DatetimeField(null=True, description="开始处理时间")
|
|
finished_at = fields.DatetimeField(null=True, description="处理结束时间")
|
|
jobs_fetched = fields.IntField(default=0, description="抓取到的职位数")
|
|
jobs_stored = fields.IntField(default=0, description="写入ClickHouse成功数")
|
|
jobs_duplicate = fields.IntField(default=0, description="职位重复数")
|
|
jobs_failed = fields.IntField(default=0, description="职位写入失败数")
|
|
jobs_error_msg = fields.TextField(null=True, description="职位同步错误信息")
|
|
|
|
class Meta:
|
|
table = "company_cleaning_queue"
|
|
unique_together = (("source", "company_id"),)
|