/**
 * This module was automatically generated by `ts-interface-builder`
 */
import * as t from "ts-interface-checker";
// tslint:disable:object-literal-key-quotes

export const BloodMeta = t.iface([], {
  "cross_matching": "boolean",
  "temperature_strips": "boolean",
  "extra_tests": "boolean",
  "reason": "string",
});

export const BloodComponent = t.enumtype({
  "Platelets": "Platelets",
  "Cryoprecipitate": "Cryoprecipitate",
  "WholeBlood": "Whole blood",
  "FreshFrozenPlasma": "Fresh frozen plasma",
  "PackedRedBloodCells": "Packed red blood cells",
  "Other": "Other",
});

export const BloodGroup = t.enumtype({
  "A_plus": "A+",
  "A_minus": "A-",
  "B_plus": "B+",
  "B_minus": "B-",
  "AB_plus": "AB+",
  "AB_minus": "AB-",
  "O_plus": "O+",
  "O_minus": "O-",
  "Unsure": "Unsure",
});

export const BloodProperties = t.iface([], {
  "market_id": "string",
  "blood_component": t.union("BloodComponent", "string"),
  "blood_group": t.union("BloodGroup", "string"),
  "packaging": "string",
  "packaging_size": "number",
  "packaging_units": "string",
  "supplier_id": t.opt("string"),
  "supplier_name": t.opt("string"),
});

export const InternalBloodProperties = t.iface(["BloodProperties"], {
  "id": "string",
});

const exportedTypeSuite: t.ITypeSuite = {
  BloodMeta,
  BloodComponent,
  BloodGroup,
  BloodProperties,
  InternalBloodProperties,
};
export default exportedTypeSuite;
