@@ -19,7 +19,7 @@ import (
1919
2020const (
2121 chatsTableName = "flipchat_chats"
22- allChatFields = `"id", "displayName", "roomNumber", "coverCharge", "type", "isOpen", "createdBy", "createdAt", "updatedAt", "lastActivityAt"`
22+ allChatFields = `"id", "displayName", "roomNumber", "coverCharge", "type", "isOpen", "description", " createdBy", "createdAt", "updatedAt", "lastActivityAt"`
2323
2424 membersTableName = "flipchat_members"
2525 allMemberFields = `"chatId", "userId", "addedById", "isMuted", "isPushEnabled", "hasModPermission", "hasSendPermission", "isSoftDeleted", "createdAt", "updatedAt"`
@@ -32,6 +32,7 @@ type chatModel struct {
3232 CoverCharge uint64 `db:"coverCharge"`
3333 Type int `db:"type"`
3434 IsOpen bool `db:"isOpen"`
35+ Descripton * string `db:"description"`
3536 CreatedBy string `db:"createdBy"`
3637 CreatedAt time.Time `db:"createdAt"`
3738 UpdatedAt time.Time `db:"updatedAt"`
@@ -68,6 +69,12 @@ func toChatModel(obj *chatpb.Metadata) (*chatModel, error) {
6869 isOpen = obj .OpenStatus .IsCurrentlyOpen
6970 }
7071
72+ var description * string
73+ if len (obj .Description ) > 0 {
74+ value := obj .Description
75+ description = & value
76+ }
77+
7178 var createdBy string
7279 if obj .Owner != nil {
7380 createdBy = pg .Encode (obj .Owner .Value )
@@ -80,6 +87,7 @@ func toChatModel(obj *chatpb.Metadata) (*chatModel, error) {
8087 CoverCharge : coverCharge ,
8188 Type : int (obj .Type ),
8289 IsOpen : isOpen ,
90+ Descripton : description ,
8391 CreatedBy : createdBy ,
8492 LastActivityAt : obj .LastActivity .AsTime ().UTC (),
8593 }, nil
@@ -112,6 +120,7 @@ func fromChatModel(m *chatModel) (*chatpb.Metadata, error) {
112120 MessagingFee : messagingFee ,
113121 Type : chatpb .Metadata_ChatType (m .Type ),
114122 OpenStatus : & chatpb.OpenStatus {IsCurrentlyOpen : m .IsOpen },
123+ Description : * pointer .StringOrDefault (m .Descripton , "" ),
115124 Owner : owner ,
116125 LastActivity : timestamppb .New (m .LastActivityAt ),
117126 }, nil
@@ -179,7 +188,7 @@ func (m *chatModel) dbPut(ctx context.Context, pool *pgxpool.Pool) error {
179188 return err
180189 }
181190
182- putQuery := `INSERT INTO ` + chatsTableName + `(` + allChatFields + `) VALUES ($1, $2, $3, $4, $5, $6, $7, NOW(), NOW(), $8 ) RETURNING ` + allChatFields
191+ putQuery := `INSERT INTO ` + chatsTableName + `(` + allChatFields + `) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, NOW(), NOW(), $9 ) RETURNING ` + allChatFields
183192 err = pgxscan .Get (
184193 ctx ,
185194 pool ,
@@ -191,6 +200,7 @@ func (m *chatModel) dbPut(ctx context.Context, pool *pgxpool.Pool) error {
191200 m .CoverCharge ,
192201 m .Type ,
193202 m .IsOpen ,
203+ m .Descripton ,
194204 m .CreatedBy ,
195205 m .LastActivityAt ,
196206 )
@@ -439,6 +449,27 @@ func dbSetDisplayName(ctx context.Context, pool *pgxpool.Pool, chatID *commonpb.
439449 return nil
440450}
441451
452+ func dbSetDescription (ctx context.Context , pool * pgxpool.Pool , chatID * commonpb.ChatId , description string ) error {
453+ query := `UPDATE ` + chatsTableName + ` SET "description" = $1, "updatedAt" = NOW() WHERE "id" = $2`
454+ queryParameters := []any {description , pg .Encode (chatID .Value )}
455+ if len (description ) == 0 {
456+ query = `UPDATE ` + chatsTableName + ` SET "description" = NULL, "updatedAt" = NOW() WHERE "id" = $1`
457+ queryParameters = []any {pg .Encode (chatID .Value )}
458+ }
459+ res , err := pool .Exec (
460+ ctx ,
461+ query ,
462+ queryParameters ... ,
463+ )
464+ if err != nil {
465+ return err
466+ }
467+ if res .RowsAffected () == 0 {
468+ return chat .ErrChatNotFound
469+ }
470+ return nil
471+ }
472+
442473func dbSetMessagingFee (ctx context.Context , pool * pgxpool.Pool , chatID * commonpb.ChatId , messagingFee * commonpb.PaymentAmount ) error {
443474 query := `UPDATE ` + chatsTableName + ` SET "coverCharge" = $1, "updatedAt" = NOW() WHERE "id" = $2`
444475 res , err := pool .Exec (
0 commit comments