open-assets/Outline.md

5.2 KiB

Handled at the master level

Tenants:

  • Tenant 000000: Master Tenant
    • Tenant: 000001 - zzzzzz (all other tenants)
      • Tenant Name
      • Tenant ID
      • Tenant Description
      • Tenant Email (primary contact)
      • Tenant Phone (primary Contact)

Handled at the Tenant Level:

Tenant Locations:

Any locations defined through a parent - child hierarchy. This can best reflect the actual structure of any location where assets may be located

location {
  _id: location_id, # req
  tenant_id: tenant_id, # req
  loc_name: location_name, # req
  loc_desc: location_description,
  loc_type: code_table, # req
  loc_info: {
      location_info
  },
  loc_is_child: t/f, # req
  loc_parent_id: location_id,
}

Code Table: location type

location_types: {
    _id: loc_type_id
    loc_type: type,
    tenant_id: tenant_id,
}

Code Table: location info

location_details: {
    _id: loc_detail_id,
    tenant_id: tenant_id,
    loc_type: type_id,
    loc_detail: detail1,
    loc_detail_type: (text, number, t/f, select),
    loc_detail_sel_options: {
        option: option1,
        option: option2,
    }
}

Assets

An asset is any item, whether permanent fixture, high dollar equiprment, consumable requiring inventory and replenishment, or otherwise.

item: {
    _id: item_id,
    tenant_id: tenant_id,
    location_id: location_id,
    location_path: path / separated / out,
    item_name: item name,
    item_desc: item desc,
    images: {
        image_name: image name,
        image_storage_location: path to image,
    }
    item_qty: qunatity,
    item_type: code_table,
    expiration_date: item_expires
    createdDate: new Date(),
    createdBy: user_id,
    modified: {
        modified_on: new Date(),
        modified_by: user_id,
        modified_reason: text_input,
    },
    item_archived: t/f,
    item_archive_info: {
        archived_on: new Date(),
        archived_by: user_id,
        archive_reason: text_input,
    },
    item_deleted: t/f,
    item_delete_info: {
        deleted_on: new Date(),
        deleted_by: user_id,
        deleted_reason: text_input,
    },
    item_dispo_info: {
        item_dispo: code_table,
        dispo_date: new Date(),
        dispo_by: user_id,
        dispo_reason: text_input,
        dispo_description: text_input,
    },
    item_barcode: barcode detail (autogenerate 1d),
    item_req_inspection: t/f
    item_req_inventory: t/f
    item_cost: number,
    item_value: number,
    item_type_attributes: {
        item_attribute: {
            attribute: entry_type,
            attribute: entry_type,
        },
        item_attribute: {
            attribute: entry_type,
            attribute: entry_type,
        },
    }.
    is_parent_of_multipart_asset: t/f
    is_part_of_multipart_asset: t/f
    multipart_asset_parent_id
}

Code Table: Asset Types

asset_types: {
    _id: asset_type_id,
    tenant_id: tenant_id:
    asset_type_name: name,
    assett_type_desc: asset_type_description,
    asset_type_req_more_details: t/f
}

Code Table: Asset Type Details

asset_type_details: {
    _id: asset_type_details_id,
    asset_type_id: asset_type_id,
    tenant_id: tenant_id,
    detail: detail_to_collect,
    field_type: number, text, t/f, select,
    asset_type_detail_sel_options: {
        option: option1,
        option: option2,
    }
}

Code Table: Asset Disposition

asset_dispoitions: {
    _id: dispo_id,
    tenant_id: tenant_id,
    disposition: disposition,
    is_final: is_a_final_dispo (t/f),
    archive_with_this_disp: t/f,
}

Code Table: Asset Inspection Types

asset_inspection_type: {
    _id: inspection_id,
    tenant_id: tenant_id,
    insp_type_name: name
}

Code Table: Asset Inspection Options

asset_inspection_name: {
    _id: inspection_id,
    tenant_id: tenant_id,
    insp_name: name,
    insp_type: item_inspection_id
}

Code Table: Asset Attribute

asset_attribute_name: {
    _id: attribute_id,
    tenant_id: tenant_id,
    attribute_name: name, # e.g. color, texture, etc
    attribute_req: t/f,
    attribute_applies_to_asset_types: <multi-select types>
}

Asset Inspections

Inspection Type

Inspection Steps

  • Step Type (e.g. pass, fail, measure, grade, etc)
  • Step instructions
  • Observations
  • Evidence (images, notes, video, data, etc.)

Multi-part Asset Inspection?

Signature of completion Signature of acceptance Signature of reviewer Singature of secondary inspectors


Asset Inventory


Asset Movements

Movements covers a wide array of actions, including but not limited to moving an item from 1 place to another, moving an item in a way that the item is used up (e.g. using a needle, flex-cuff, etc), movement for destruction, movement for retirement, etc. These types can be defined by the tenant.

Movement Record

asset_movement: {
    _id: asset_move_id,
    tenant_id: tenant_id,
    asset_id: asset_id,
    movement_type: movement_type_id,
    movement_end
}
movement_type: {
    _id: movement_id,
    tenant_id: tenant_id,
    movement_name: name,
    movement_desc: description,
    req_end_location: t/f,
    req_usage_qty: t/f,

}