package mailstore

import "fmt"

// QuotaStatus reports a mailbox's storage usage — feeds the "≥90% full" badge on the
// mailboxes list and the dashboard tile in a later milestone.
func (s *Store) QuotaStatus(mailboxID int64) (used, quota int64, pctFull float64, err error) {
	mbox, err := s.DB.GetMailboxByID(mailboxID)
	if err != nil {
		return 0, 0, 0, err
	}
	if mbox == nil {
		return 0, 0, 0, fmt.Errorf("mailstore: mailbox %d not found", mailboxID)
	}
	if mbox.QuotaBytes == 0 {
		return mbox.UsedBytes, 0, 0, nil
	}
	return mbox.UsedBytes, mbox.QuotaBytes, float64(mbox.UsedBytes) / float64(mbox.QuotaBytes) * 100, nil
}
