from datetime import datetime, timezone

utc = timezone.utc

ENTRIES = [
    {
        "is_dir": True,
        "parent_id": 1,
        "path": "cats",
        "name": "cats",
        "last_modified": datetime(9999, 12, 31, 23, 59, 59, 999999, tzinfo=utc),
        "checksum": "",
        "etag": "",
        "version": "",
        "is_latest": True,
        "size": 0,
        "owner_name": "",
        "owner_id": "",
    },
    {
        "is_dir": True,
        "parent_id": 1,
        "path": "dogs",
        "name": "dogs",
        "last_modified": datetime(9999, 12, 31, 23, 59, 59, 999999, tzinfo=utc),
        "checksum": "",
        "etag": "",
        "version": "",
        "is_latest": True,
        "size": 0,
        "owner_name": "",
        "owner_id": "",
    },
    {
        "is_dir": False,
        "parent_id": 1,
        "path": "description",
        "name": "description",
        "checksum": "",
        "etag": "60a7605e934638ab9113e0f9cf852239",
        "version": "7e589b7d-382c-49a5-931f-2b999c930c5e",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 13,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
    {
        "is_dir": False,
        "parent_id": 2,
        "path": "cats/cat1",
        "name": "cat1",
        "checksum": "",
        "etag": "4a4be40c96ac6314e91d93f38043a634",
        "version": "309eb4a4-bba9-47c1-afcd-d7c51110af6f",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 4,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
    {
        "is_dir": False,
        "parent_id": 2,
        "path": "cats/cat2",
        "name": "cat2",
        "checksum": "",
        "etag": "0268c692ff940a830e1e7296aa48c176",
        "version": "f9d168d3-6d1b-47ef-8f6a-81fce48de141",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 4,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
    {
        "is_dir": True,
        "parent_id": 3,
        "path": "dogs/others",
        "name": "others",
        "last_modified": datetime(9999, 12, 31, 23, 59, 59, 999999, tzinfo=utc),
        "checksum": "",
        "etag": "",
        "version": "",
        "is_latest": True,
        "size": 0,
        "owner_name": "",
        "owner_id": "",
    },
    {
        "is_dir": False,
        "parent_id": 3,
        "path": "dogs/dog1",
        "name": "dog1",
        "checksum": "",
        "etag": "8fdb60801e9d39a5286aa01dd1f4f4f3",
        "version": "b9c31cf7-d011-466a-bf16-cf9da0cb422a",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 4,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
    {
        "is_dir": False,
        "parent_id": 3,
        "path": "dogs/dog2",
        "name": "dog2",
        "checksum": "",
        "etag": "2d50c921b22aa164a56c68d71eeb4100",
        "version": "3a8bb6d9-38db-47a8-8bcb-8972ea95aa20",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 3,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
    {
        "is_dir": False,
        "parent_id": 3,
        "path": "dogs/dog3",
        "name": "dog3",
        "checksum": "",
        "etag": "33c6c2397a1b079e903c474df792d0e2",
        "version": "ee49e963-36a8-492a-b03a-e801b93afb40",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 4,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
    {
        "is_dir": False,
        "parent_id": 7,
        "path": "dogs/others/dog4",
        "name": "dog4",
        "checksum": "",
        "etag": "a5e1a5d93ff242b745f5cf87aeb726d5",
        "version": "c5969421-6900-4060-bc39-d54f4a49b9fc",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 4,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
]

# files with directory name collisions:
#   dogs/others/
#   dogs/others
#   dogs/
INVALID_ENTRIES = [
    {
        "is_dir": False,
        "parent_id": 7,
        "path": "dogs/others",
        "name": "",
        "checksum": "",
        "etag": "68b329da9893e34099c7d8ad5cb9c940",
        "version": "85969421-6900-4060-bc39-d54f4a49b9ab",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 4,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
    {
        "is_dir": False,
        "parent_id": 3,
        "path": "dogs/others",
        "name": "others",
        "checksum": "",
        "etag": "68b329da9893e34099c7d8ad5cb9c940",
        "version": "85969421-6900-4060-bc39-d54f4a49b9ab",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 4,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
    {
        "is_dir": False,
        "parent_id": 3,
        "path": "dogs",
        "name": "",
        "checksum": "",
        "etag": "68b329da9893e34099c7d8ad5cb9c940",
        "version": "85969421-6900-4060-bc39-d54f4a49b9ab",
        "is_latest": True,
        "last_modified": datetime(2023, 2, 27, 18, 28, 54, tzinfo=utc),
        "size": 4,
        "owner_name": "webfile",
        "owner_id": "75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a",
        "anno": None,
    },
]
