# Generated from the provider's pinned SQLite source fixture.
# Edit the generator inputs, then regenerate; do not edit this file by hand.

record "authors" {
  key = ["au_id"]

  field "au_id" {
    required = true
    type = "string"
  }

  field "au_lname" {
    required = true
    type = "string"
  }

  field "au_fname" {
    required = true
    type = "string"
  }

  field "phone" {
    required = true
    type = "string"
  }

  field "address" {
    type = "string"
  }

  field "city" {
    type = "string"
  }

  field "state" {
    type = "string"
  }

  field "zip" {
    type = "string"
  }

  field "contract" {
    required = true
    type = "int"
  }
}

record "discounts" {

  field "discounttype" {
    required = true
    type = "string"
  }

  field "stor_id" {
    record = "stores"
  }

  field "lowqty" {
    type = "int"
  }

  field "highqty" {
    type = "int"
  }

  field "discount" {
    required = true
    type = "decimal"
  }
}

record "employee" {
  key = ["emp_id"]

  field "emp_id" {
    required = true
    type = "string"
  }

  field "fname" {
    required = true
    type = "string"
  }

  field "minit" {
    type = "string"
  }

  field "lname" {
    required = true
    type = "string"
  }

  field "job_id" {
    required = true
    record = "jobs"
  }

  field "job_lvl" {
    type = "int"
  }

  field "pub_id" {
    required = true
    record = "publishers"
  }

  field "hire_date" {
    required = true
    type = "string"
  }
}

record "jobs" {
  key = ["job_id"]

  field "job_id" {
    required = true
    type = "int"
  }

  field "job_desc" {
    required = true
    type = "string"
  }

  field "min_lvl" {
    required = true
    type = "int"
  }

  field "max_lvl" {
    required = true
    type = "int"
  }
}

record "pub_info" {
  key = ["pub_id"]

  field "pub_id" {
    required = true
    record = "publishers"
  }

  field "logo" {
    type = "document"
  }

  field "pr_info" {
    type = "string"
  }
}

record "publishers" {
  key = ["pub_id"]

  field "pub_id" {
    required = true
    type = "string"
  }

  field "pub_name" {
    type = "string"
  }

  field "city" {
    type = "string"
  }

  field "state" {
    type = "string"
  }

  field "country" {
    type = "string"
  }
}

record "roysched" {

  field "title_id" {
    record = "titles"
  }

  field "lorange" {
    type = "int"
  }

  field "hirange" {
    type = "int"
  }

  field "royalty" {
    type = "int"
  }
}

record "sales" {
  key = ["stor_id","ord_num","title_id"]

  field "stor_id" {
    required = true
    record = "stores"
  }

  field "ord_num" {
    required = true
    type = "string"
  }

  field "ord_date" {
    required = true
    type = "string"
  }

  field "qty" {
    required = true
    type = "int"
  }

  field "payterms" {
    required = true
    type = "string"
  }

  field "title_id" {
    required = true
    record = "titles"
  }
}

record "stores" {
  key = ["stor_id"]

  field "stor_id" {
    required = true
    type = "string"
  }

  field "stor_name" {
    type = "string"
  }

  field "stor_address" {
    type = "string"
  }

  field "city" {
    type = "string"
  }

  field "state" {
    type = "string"
  }

  field "zip" {
    type = "string"
  }
}

record "titleauthor" {
  key = ["au_id","title_id"]

  field "au_id" {
    required = true
    record = "authors"
  }

  field "title_id" {
    required = true
    record = "titles"
  }

  field "au_ord" {
    type = "int"
  }

  field "royaltyper" {
    type = "int"
  }
}

record "titles" {
  key = ["title_id"]

  field "title_id" {
    required = true
    type = "string"
  }

  field "title" {
    required = true
    type = "string"
  }

  field "type" {
    required = true
    type = "string"
  }

  field "pub_id" {
    record = "publishers"
  }

  field "price" {
    type = "decimal"
  }

  field "advance" {
    type = "decimal"
  }

  field "royalty" {
    type = "int"
  }

  field "ytd_sales" {
    type = "int"
  }

  field "notes" {
    type = "string"
  }

  field "pubdate" {
    required = true
    type = "string"
  }
}
