diff --git a/database/telegram_resource/public/model/channels.go b/database/telegram_resource/public/model/channels.go index 08c2c38..5379a80 100644 --- a/database/telegram_resource/public/model/channels.go +++ b/database/telegram_resource/public/model/channels.go @@ -12,12 +12,13 @@ import ( ) type Channels struct { - ID int64 `sql:"primary_key"` - UUID int64 - Username string - Title string - CreatedAt *time.Time - UpdatedAt *time.Time - Offset int64 - MinID int64 + ID int64 `sql:"primary_key"` + UUID int64 + Username string + Title string + CreatedAt *time.Time + UpdatedAt *time.Time + Offset int64 + MinID int64 + ExportMedia bool } diff --git a/database/telegram_resource/public/table/channels.go b/database/telegram_resource/public/table/channels.go index 1c94557..1249b99 100644 --- a/database/telegram_resource/public/table/channels.go +++ b/database/telegram_resource/public/table/channels.go @@ -17,14 +17,15 @@ type channelsTable struct { postgres.Table // Columns - ID postgres.ColumnInteger - UUID postgres.ColumnInteger - Username postgres.ColumnString - Title postgres.ColumnString - CreatedAt postgres.ColumnTimestampz - UpdatedAt postgres.ColumnTimestampz - Offset postgres.ColumnInteger - MinID postgres.ColumnInteger + ID postgres.ColumnInteger + UUID postgres.ColumnInteger + Username postgres.ColumnString + Title postgres.ColumnString + CreatedAt postgres.ColumnTimestampz + UpdatedAt postgres.ColumnTimestampz + Offset postgres.ColumnInteger + MinID postgres.ColumnInteger + ExportMedia postgres.ColumnBool AllColumns postgres.ColumnList MutableColumns postgres.ColumnList @@ -65,30 +66,32 @@ func newChannelsTable(schemaName, tableName, alias string) *ChannelsTable { func newChannelsTableImpl(schemaName, tableName, alias string) channelsTable { var ( - IDColumn = postgres.IntegerColumn("id") - UUIDColumn = postgres.IntegerColumn("uuid") - UsernameColumn = postgres.StringColumn("username") - TitleColumn = postgres.StringColumn("title") - CreatedAtColumn = postgres.TimestampzColumn("created_at") - UpdatedAtColumn = postgres.TimestampzColumn("updated_at") - OffsetColumn = postgres.IntegerColumn("offset") - MinIDColumn = postgres.IntegerColumn("min_id") - allColumns = postgres.ColumnList{IDColumn, UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn} - mutableColumns = postgres.ColumnList{UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn} + IDColumn = postgres.IntegerColumn("id") + UUIDColumn = postgres.IntegerColumn("uuid") + UsernameColumn = postgres.StringColumn("username") + TitleColumn = postgres.StringColumn("title") + CreatedAtColumn = postgres.TimestampzColumn("created_at") + UpdatedAtColumn = postgres.TimestampzColumn("updated_at") + OffsetColumn = postgres.IntegerColumn("offset") + MinIDColumn = postgres.IntegerColumn("min_id") + ExportMediaColumn = postgres.BoolColumn("export_media") + allColumns = postgres.ColumnList{IDColumn, UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn, ExportMediaColumn} + mutableColumns = postgres.ColumnList{UUIDColumn, UsernameColumn, TitleColumn, CreatedAtColumn, UpdatedAtColumn, OffsetColumn, MinIDColumn, ExportMediaColumn} ) return channelsTable{ Table: postgres.NewTable(schemaName, tableName, alias, allColumns...), //Columns - ID: IDColumn, - UUID: UUIDColumn, - Username: UsernameColumn, - Title: TitleColumn, - CreatedAt: CreatedAtColumn, - UpdatedAt: UpdatedAtColumn, - Offset: OffsetColumn, - MinID: MinIDColumn, + ID: IDColumn, + UUID: UUIDColumn, + Username: UsernameColumn, + Title: TitleColumn, + CreatedAt: CreatedAtColumn, + UpdatedAt: UpdatedAtColumn, + Offset: OffsetColumn, + MinID: MinIDColumn, + ExportMedia: ExportMediaColumn, AllColumns: allColumns, MutableColumns: mutableColumns, diff --git a/internal/db_channel.go b/internal/db_channel.go index 719a0e9..3b8fea2 100644 --- a/internal/db_channel.go +++ b/internal/db_channel.go @@ -20,10 +20,11 @@ import ( ) type DBChannel struct { - UUID int64 - Username string - Title string - MinID int + UUID int64 + Username string + Title string + MinID int + ExportMedia bool } func NewDBChannel(uuid int64, username, title string) *DBChannel { @@ -68,13 +69,14 @@ func (c *DBChannel) Get(ctx context.Context) error { if errors.Is(err, qrm.ErrNoRows) { // create new channel with default value m = model.Channels{ - UUID: c.UUID, - Username: c.Username, - Title: c.Title, - MinID: 0, - Offset: 0, - CreatedAt: lo.ToPtr(time.Now()), - UpdatedAt: lo.ToPtr(time.Now()), + UUID: c.UUID, + Username: c.Username, + Title: c.Title, + MinID: 0, + Offset: 0, + ExportMedia: false, + CreatedAt: lo.ToPtr(time.Now()), + UpdatedAt: lo.ToPtr(time.Now()), } if _, err := tbl.INSERT(tbl.AllColumns.Except(tbl.ID)).MODEL(m).ExecContext(ctx, db); err != nil { @@ -85,6 +87,7 @@ func (c *DBChannel) Get(ctx context.Context) error { } } c.MinID = int(m.MinID) + c.ExportMedia = m.ExportMedia return nil }