mirror of https://github.com/Bunsly/JobSpy
56 lines
986 B
Python
56 lines
986 B
Python
|
from pydantic import BaseModel
|
||
|
from datetime import datetime
|
||
|
from enum import Enum
|
||
|
|
||
|
|
||
|
class JobType(Enum):
|
||
|
FULL_TIME = 'full_time'
|
||
|
PART_TIME = 'part_time'
|
||
|
CONTRACT = 'contract'
|
||
|
INTERNSHIP = 'internship'
|
||
|
|
||
|
|
||
|
class CompensationInterval(Enum):
|
||
|
ANNUAL = 'annual'
|
||
|
MONTHLY = 'monthly'
|
||
|
WEEKLY = 'weekly'
|
||
|
DAILY = 'daily'
|
||
|
HOURLY = 'hourly'
|
||
|
|
||
|
|
||
|
class Location(BaseModel):
|
||
|
country: str
|
||
|
city: str
|
||
|
state: str
|
||
|
postal_code: str = None
|
||
|
address: str = None
|
||
|
|
||
|
|
||
|
class Compensation(BaseModel):
|
||
|
interval: CompensationInterval
|
||
|
min_amount: int
|
||
|
max_amount: int
|
||
|
currency: str
|
||
|
|
||
|
|
||
|
class DeliveryEnum(Enum):
|
||
|
EMAIL = 'email'
|
||
|
URL = 'url'
|
||
|
|
||
|
|
||
|
class Delivery(BaseModel):
|
||
|
method: DeliveryEnum
|
||
|
value: str
|
||
|
|
||
|
|
||
|
class JobPost(BaseModel):
|
||
|
title: str
|
||
|
description: str
|
||
|
company_name: str
|
||
|
industry: str
|
||
|
location: Location
|
||
|
job_type: JobType
|
||
|
compensation: Compensation
|
||
|
date_posted: datetime
|
||
|
delivery: Delivery = None
|