open-assets/Outline.md

243 lines
5.2 KiB
Markdown
Raw Permalink Normal View History

2026-01-24 13:49:38 -06:00
### 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,
}
```
----
##