import datetime
import uuid
from dataclasses import dataclass, field

@dataclass
class Project:

	id: uuid.UUID
	user_id: int
	account_id: int
	name: str
	assignee_id: int
	commodity: str = field(default=None)
	due_date: datetime.date = field(default=None)
	truck_lane_search_id: uuid.UUID = field(default=None)
	equipment_type: str = field(default=None)
	origin_city: str = field(default=None)
	origin_state: str = field(default=None)
	origin_zip: str = field(default=None)
	dest_city: str = field(default=None)
	dest_state: str = field(default=None)
	dest_zip: str = field(default=None)
	min_rate: int = field(default=None)
	max_rate: int = field(default=None)
	max_buy: int = field(default=None)
	packaging: str = field(default=None)
	trailer_requirements: str = field(default=None)
	shipper_notes: str = field(default=None)
	receiver_notes: str = field(default=None)
	value: int = field(default=None)
	monday: bool = field(default=False)
	tuesday: bool = field(default=False)
	wednesday: bool = field(default=False)
	thursday: bool = field(default=False)
	friday: bool = field(default=False)
	saturday: bool = field(default=False)
	sunday: bool = field(default=False)
	weight: int = field(default=None)
	origin_lat: float = field(default=None)
	origin_lng: float = field(default=None)
	dest_lat: float = field(default=None)
	dest_lng: float = field(default=None)
	load_volume: int = field(default=None)
	rfp_requested_date: datetime.date = field(default=None)
	load_volume_duration: str = field(default=None)
	task_count: int = field(default=None)
	load_capacity: int = field(default=None)
	load_count: int = field(default=None)
	stage_id: uuid.UUID = field(default=None)
	carrier_count: int = field(default=None)
	position: str = field(default=None)
	last_bid: int = field(default=None)
	upload_count: int = field(default=None)
	last_upload: datetime.date = field(default=None)
	best_rate: int = field(default=None)
	match_count: int = field(default=None)
	network_match_count: int = field(default=None)
	probability: int = field(default=None)
	lane_id: uuid.UUID = field(default=None)
	next_pickup_date: datetime.date = field(default=None)
	load_id: uuid.UUID = field(default=None)
	approximate_miles: int = field(default=None)
	require_teams: bool = field(default=False)
	revenue_code: str = field(default=None)
	invite_ungrouped_carriers: bool = field(default=False)
	type: str = field(default=None)
	ungrouped_carriers_delay: int = field(default=None)
	send_to_out_of_network_carriers: bool = field(default=False)
	send_to_out_of_network_carriers_delay: int = field(default=None)
	procured_carrier_id_list: list = field(default=None)
	enabled: bool = field(default=True)
	notify_procured_carriers: bool = field(default=False)
	assignee_is_dispatcher: bool = field(default=False)
	send_to_network_carriers: bool = field(default=False)
	send_to_network_carriers_delay: int = field(default=None)
	deleted: bool = field(default=False)
