package domain import ( "io" "time" ) type FileSizeQuota struct { AllowanceKB int64 CurrentUsage int64 } func (f *FileSizeQuota) Allows(size int64) bool { return f.CurrentUsage + size <= f.AllowanceKB } func (f *FileSizeQuota) Add(size int64) { f.CurrentUsage += size } func (f *FileSizeQuota) Remove(size int64) { f.CurrentUsage -= size } type BogFileData interface { Path() string Size() int64 Modified() time.Time io.Reader io.Seeker io.Writer io.Closer } type FileSource struct { Path string UserAgent string Size int64 Src io.ReadCloser } type FileDestination struct { Path string UserAgent string Dst io.WriteCloser }