feat: Guest invites
Summary
discord/discord-api-docs#6247
Official Discord client seem to check for whether a member is a guest by asserting not some_member.joined_at, so we'll do the same.
According to docs ~~written by myself~~ invite flags is an optional but not nullable flag. Though if some invite doesn't have flags, it is functionally equivalent to flags = 0, so the flags property is kept out of the Invite's docstring's table.
While not technically being a breaking change (for a reason only Danny and God know Member.joined_at is already optional despite official docs stating that it is always present), this PR actually introduces a real case when it can be optional. I'm not sure whether this should be mentioned in changelog as a breaking change, so decide yourself.
Checklist
- [x] If code changes were made, then they have been tested
- [x] I have updated the documentation to reflect the changes
- [x] I have formatted the code properly by running
pdm lint - [x] I have type-checked the code by running
pdm pyright
- [ ] This PR fixes an issue
- [x] This PR adds something new (e.g. new method or parameters)
- [ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
- [ ] This PR is not a code change (e.g. documentation, README, ...)