package entity

import (
	"backend/pkg/notification/domain/notification"
	"time"

	"github.com/gocql/gocql"
)

// UserNotification represents a notification for a specific user.
type UserNotification struct {
	UserID  string                    `db:"user_id" partition_key:"true"` // 收通知的人
	Bucket  string                    `db:"bucket" partition_key:"true"`  // 分桶，例如 '2025-11' 或 '2025-11-17'
	TS      gocql.UUID                `db:"ts" clustering_key:"true"`     // 通知時間，用 now() 產生，排序用(UTC0)
	EventID gocql.UUID                `db:"event_id"`                     // 對應 notification_event.event_id
	Status  notification.NotifyStatus `db:"status"`                       // UNREAD / READ / ARCHIVED
	ReadAt  time.Time                 `db:"read_at"`                      // 已讀時間（非必填）
}

func (un *UserNotification) TableName() string {
	return "user_notification"
}
