version: 1.0.0
dataset: bronze_employees

info:
  title: Employees (Bronze)
  version: 1.0.0
  table_name: "{bronze_layer}_employees"
  description: "Raw employee data — minimal transformation, maximum fidelity."
  target_layer: bronze
  domain: hr
  system: employees

model:
  fields:
    - name: id
      type: integer
      required: true
    - name: name
      type: string
      required: true
    - name: email
      type: string
      required: true
    - name: department
      type: string
    - name: salary
      type: integer
    - name: hire_date
      type: string
    - name: status
      type: string

source:
  type: landing
  path: "data"
  format: csv
  options:
    header: "true"

quality:
  row_rules:
    - name: has_id
      sql: "id IS NOT NULL"
      category: completeness
    - name: has_email
      sql: "email IS NOT NULL AND email LIKE '%@%'"
      category: validity

materialization:
  target_path: "output/bronze_employees"
  strategy: append
  format: parquet
