package mysql

import (
	"context"
	"data-platform/model"
	"gorm.io/gorm"
)

type publicCollection struct {
	db *gorm.DB
}

func newPublicCollection(ds *datastore) *publicCollection {
	return &publicCollection{db: ds.db}
}

func (mc *publicCollection) GetByCollectionNumber(_ context.Context, collectionNumber string) (record model.PublicCollection, err error) {
	mc.db.Where("ns_collection_number = ?", collectionNumber).First(&record)
	return
}

func (mc *publicCollection) ListByCloudCondition(_ context.Context, collectionsDate, collectionStatus string) ([]*model.PublicCollection, error) {
	var records []*model.PublicCollection
	tx := mc.db.Model(&model.PublicCollection{})
	if collectionsDate != "" {
		tx = tx.Where("STR_TO_DATE(collections_date,'%m/%d/%Y') >= ?", collectionsDate)
	}
	if collectionStatus != "" {
		tx = tx.Where("collection_status = ?", collectionStatus)
	}

	err := tx.Find(&records).Error
	return records, err
}
