feat(backend): add data model