Skip to content

Commit 584468b

Browse files
committed
chore: data types for operation information service
1 parent 5ed01a1 commit 584468b

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
from dataclasses import dataclass
2+
from typing import List, Optional
3+
4+
from django.core.files.uploadedfile import UploadedFile
5+
from registration.models.operation import Operation
6+
7+
8+
@dataclass
9+
class MultipleOperatorData:
10+
legal_name: str
11+
trade_name: str
12+
business_structure: str
13+
cra_business_number: str
14+
15+
id: Optional[int] = None
16+
bc_corporate_registry_number: Optional[str] = None
17+
street_address: Optional[str] = None
18+
municipality: Optional[str] = None
19+
province: Optional[str] = None
20+
postal_code: Optional[str] = None
21+
22+
23+
@dataclass
24+
class OperationData:
25+
name: str
26+
type: str
27+
registration_purpose: Optional[Operation.Purposes] = None
28+
regulated_products: Optional[List[int]] = None
29+
activities: Optional[List[int]] = None
30+
naics_code_id: Optional[int] = None
31+
secondary_naics_code_id: Optional[int] = None
32+
tertiary_naics_code_id: Optional[int] = None
33+
multiple_operators_array: Optional[List[MultipleOperatorData]] = None
34+
date_of_first_shipment: Optional[str] = None
35+
36+
# Attachments
37+
boundary_map: Optional[UploadedFile] = None
38+
process_flow_diagram: Optional[UploadedFile] = None
39+
new_entrant_application: Optional[UploadedFile] = None
40+
41+
def operation_fields(self) -> dict:
42+
return {
43+
"name": self.name,
44+
"type": self.type,
45+
"naics_code_id": self.naics_code_id,
46+
"secondary_naics_code_id": self.secondary_naics_code_id,
47+
"tertiary_naics_code_id": self.tertiary_naics_code_id,
48+
"date_of_first_shipment": self.date_of_first_shipment,
49+
"registration_purpose": self.registration_purpose,
50+
}
51+
52+
53+
@dataclass
54+
class UpdateOperationData(OperationData):
55+
operation_representatives: List[int] = None
56+
57+
58+
@dataclass
59+
class OptedInOperationDetailData:
60+
meets_section_3_emissions_requirements: bool
61+
meets_electricity_import_operation_criteria: bool
62+
meets_entire_operation_requirements: bool
63+
meets_section_6_emissions_requirements: bool
64+
meets_naics_code_11_22_562_classification_requirements: bool
65+
meets_producing_gger_schedule_a1_regulated_product: bool
66+
meets_reporting_and_regulated_obligations: bool
67+
meets_notification_to_director_on_criteria_change: bool
68+
final_reporting_year: Optional[int] = None

0 commit comments

Comments
 (0)