package repositories import ( "git.secnex.io/secnex/masterlog" "git.secnex.io/secnex/taro-bot/database" "git.secnex.io/secnex/taro-bot/models" "github.com/google/uuid" ) func CreateChannel(name, tenantId, externalId string) error { channel := &models.Channel{ Name: name, TenantID: uuid.MustParse(tenantId), ExternalID: externalId, } return database.DB.Create(channel).Error } func UpsertChannel(name, tenantId, externalId string) (*models.Channel, error) { masterlog.Debug("Upserting channel", map[string]interface{}{"name": name, "tenantId": tenantId, "externalId": externalId}) channel := &models.Channel{} tenantUUID := uuid.MustParse(tenantId) masterlog.Debug("Upserting channel", map[string]interface{}{"name": name, "tenantId": tenantUUID, "externalId": externalId}) err := database.DB. Where("external_id = ?", externalId). FirstOrCreate(&channel, models.Channel{ Name: name, TenantID: tenantUUID, ExternalID: externalId, }).Error if err != nil { return nil, err } return channel, nil } func GetChannelByID(id string) (*models.Channel, error) { var channel models.Channel if err := database.DB.Where("id = ?", id).First(&channel).Error; err != nil { return nil, err } return &channel, nil } func GetChannelByExternalID(id string) (*models.Channel, error) { var channel models.Channel if err := database.DB.Where("external_id = ?", id).First(&channel).Error; err != nil { return nil, err } return &channel, nil } func DeleteTeamByExternalID(id string) error { return database.DB.Where("external_id = ?", id).Delete(&models.Channel{}).Error }