classDiagram class DocumentsPage { +OnGetAsync() +OnGetDownloadAsync() +OnGetZipAsync() } class DocumentsService { +ListDocumentsAsync(orgId, search, type, token) +GetDownloadUrlAsync(orgId, key) +GetZipStreamAsync(orgId, keys) +ResolveCustomerPrefixAsync(orgId, orgName) } class S3DocumentsClient { -IAmazonS3 _s3 +ListObjectsAsync(prefix, delimiter, token) +GetObjectMetadataAsync(key) +GetPresignedUrlAsync(key) } class OrgSlug { +Slugify(name) string } class S3Settings { +BucketName string +ServiceUrl string } DocumentsPage --> DocumentsService DocumentsService --> S3DocumentsClient DocumentsService --> OrgSlug S3DocumentsClient --> S3Settings