Merge with irachex repo, to add `distinct` suport and `get_or_create`

add `<get_or_create>` in `<Model>`. add `<distinct>` in `<Query>`