# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---
resources:
  - type: bigquery_table
    table_id: cpsaat18
    description: "Current population survey 18: Employed persons by detailed industry, sex, race, and Hispanic or Latino ethnicity"

dag:
  airflow_version: 2
  initialize:
    dag_id: cpsaat18
    default_args:
      owner: "Google"
      depends_on_past: False
      start_date: '2021-06-23'
    max_active_runs: 1
    schedule_interval: "@yearly"
    catchup: False
    default_view: graph

  tasks:
    - operator: "GoogleCloudStorageToBigQueryOperator"
      description: "Task to load the CPSAAT18 data to the BigQuery table"
      args:
        task_id: "load_csv_to_bq"
        bucket: "{{ var.json.bls.source_bucket }}"
        source_objects: ["cpsaat18/2023.csv"]
        source_format: "CSV"
        destination_project_dataset_table: "bls.cpsaat18"
        skip_leading_rows: 1
        write_disposition: "WRITE_TRUNCATE"
        schema_fields:
          - name: "year"
            type: "integer"
            nullable: false
          - name: "sector"
            type: "string"
            nullable: false
          - name: "subsector"
            type: "string"
            nullable: true
          - name: "industry_group"
            type: "string"
            nullable: true
          - name: "industry"
            type: "string"
            nullable: true
          - name: "total_employed_in_thousands"
            type: "integer"
            nullable: true
          - name: "percent_women"
            type: "float"
            nullable: true
          - name: "percent_white"
            type: "float"
            nullable: true
          - name: "percent_black_or_african_american"
            type: "float"
            nullable: true
          - name: "percent_asian"
            type: "float"
            nullable: true
          - name: "percent_hispanic_or_latino"
            type: "float"
            nullable: true

  graph_paths:
    - "load_csv_to_bq"
