* MM-21357: Use typed constant for channel types
https://mattermost.atlassian.net/browse/MM-21357
```release-note
- Introduced a new type ChannelType for all channel types.
- Updated the Client4.UpdateChannelPrivacy method to ChannelType.
```
* Address review comments
```release-note
NONE
```
* telemetry fix
```release-note
NONE
```
* format using `goimports -local github.com/mattermost/mattermost-server/v5 -w`
* added goimports lint check to .golangci.yml
* format using `goimports -local github.com/mattermost/mattermost-server/v5 -w` for a corner case
* make app-layers, *-mocks and store-layers for ci check
Co-authored-by: Mahmudul Haque <mahmudulhaque@protonmail.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
* Removing supplier concept from the sql store
* Removing other metions to supplier
* Fixing gofmt
* Fixing gofmt
* Renaming NewSqlStore to New
* Fixing tests
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
* Fix direct/group channel false positives
* Move public structures to model package
* Expose CheckIntegrity as a local API method
* Remove extra file
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
* Consistent license message for all the go files
* Fixing the last set of unconsistencies with the license headers
* Addressing PR review comments
* Fixing busy.go and busy_test.go license header
* Add integrity command
* Add structures and implementation for basic referential integrity check
* Use a channel to receive integrity check reports as they generates
* Setup unit testing
* Add confirm prompt to integrity command and make verbose output optional
* Add more integrity checks
* Use wrapper functions to simplify behaviour and tests
* Improve extensibility of IntegrityCheckResult
* Improve CheckIntegrity tests performance
* Use a config structure for relational integrity checks
* Add more relational integrity checks
* Add more checks and do some cleanup
* Add more relational integrity checks with proper tests
* Fix tests to use sync functions
* Add more info to integrity command help
* Add more relational integrity checks
* Add more relational integrity checks
* Add missing checks
* Show more information about missing records
* Fix to use new sync function
* Change integrity check functions to accept a SqlSupplier
* Fix code duplication
* Use squirrel for query building