diff --git a/(azurite)/__azurite_db_blob__.json b/(azurite)/__azurite_db_blob__.json index 88452534..d5c0e748 100644 --- a/(azurite)/__azurite_db_blob__.json +++ b/(azurite)/__azurite_db_blob__.json @@ -1 +1,420 @@ -{"filename":"C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_blob__.json","collections":[{"name":"$SERVICES_COLLECTION$","data":[],"idIndex":null,"binaryIndices":{},"constraints":null,"uniqueNames":["accountName"],"transforms":{},"objType":"$SERVICES_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":0,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]},{"name":"$CONTAINERS_COLLECTION$","data":[{"accountName":"devstoreaccount1","name":"course-files","properties":{"etag":"\"0x20C1223A3927D00\"","lastModified":"2025-03-13T21:12:40.981Z","leaseStatus":"unlocked","leaseState":"available","publicAccess":"blob","hasImmutabilityPolicy":false,"hasLegalHold":false},"meta":{"revision":0,"created":1741900361031,"version":0},"$loki":1}],"idIndex":null,"binaryIndices":{"accountName":{"name":"accountName","dirty":false,"values":[0]},"name":{"name":"name","dirty":false,"values":[0]}},"constraints":null,"uniqueNames":[],"transforms":{},"objType":"$CONTAINERS_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":1,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]},{"name":"$BLOBS_COLLECTION$","data":[{"deleted":false,"accountName":"devstoreaccount1","containerName":"course-files","name":"1741900361039-2_ML_LinearRegression.pdf","properties":{"creationTime":"2025-03-13T21:12:41.041Z","lastModified":"2025-03-13T21:12:41.041Z","etag":"\"0x23001DFC0318BA0\"","contentLength":559669,"contentType":"application/pdf","contentMD5":{"type":"Buffer","data":[43,85,103,175,186,209,77,26,185,37,42,228,191,54,193,79]},"blobType":"BlockBlob","leaseStatus":"unlocked","leaseState":"available","serverEncrypted":true,"accessTier":"Hot","accessTierInferred":true,"accessTierChangeTime":"2025-03-13T21:12:41.041Z"},"snapshot":"","isCommitted":true,"persistency":{"id":"99073389-333d-4a24-928c-1b7f3c3eb14d","offset":0,"count":559669},"meta":{"revision":0,"created":1741900361061,"version":0},"$loki":1},{"deleted":false,"accountName":"devstoreaccount1","containerName":"course-files","name":"1741900784863-2_ML_LinearRegression.pdf","properties":{"creationTime":"2025-03-13T21:19:44.865Z","lastModified":"2025-03-13T21:19:44.865Z","etag":"\"0x1E403531A477810\"","contentLength":559669,"contentType":"application/pdf","contentMD5":{"type":"Buffer","data":[212,29,140,217,143,0,178,4,233,128,9,152,236,248,66,126]},"blobType":"BlockBlob","leaseStatus":"unlocked","leaseState":"available","serverEncrypted":true,"accessTier":"Hot","accessTierInferred":true,"accessTierChangeTime":"2025-03-13T21:19:44.865Z"},"snapshot":"","isCommitted":true,"persistency":{"id":"99073389-333d-4a24-928c-1b7f3c3eb14d","offset":559669,"count":559669},"meta":{"revision":0,"created":1741900784878,"version":0},"$loki":2},{"deleted":false,"accountName":"devstoreaccount1","containerName":"course-files","name":"1742576429640-2.png","properties":{"creationTime":"2025-03-21T17:00:29.643Z","lastModified":"2025-03-21T17:00:29.643Z","etag":"\"0x2640C69A152EB40\"","contentLength":145000,"contentType":"image/png","contentMD5":{"type":"Buffer","data":[212,29,140,217,143,0,178,4,233,128,9,152,236,248,66,126]},"blobType":"BlockBlob","leaseStatus":"unlocked","leaseState":"available","serverEncrypted":true,"accessTier":"Hot","accessTierInferred":true,"accessTierChangeTime":"2025-03-21T17:00:29.643Z"},"snapshot":"","isCommitted":true,"persistency":{"id":"99073389-333d-4a24-928c-1b7f3c3eb14d","offset":1119338,"count":145000},"meta":{"revision":0,"created":1742576429663,"version":0},"$loki":3},{"deleted":false,"accountName":"devstoreaccount1","containerName":"course-files","name":"1742576498970-2.png","properties":{"creationTime":"2025-03-21T17:01:38.972Z","lastModified":"2025-03-21T17:01:38.972Z","etag":"\"0x1F192B26835AAB0\"","contentLength":145000,"contentType":"image/png","contentMD5":{"type":"Buffer","data":[212,29,140,217,143,0,178,4,233,128,9,152,236,248,66,126]},"blobType":"BlockBlob","leaseStatus":"unlocked","leaseState":"available","serverEncrypted":true,"accessTier":"Hot","accessTierInferred":true,"accessTierChangeTime":"2025-03-21T17:01:38.972Z"},"snapshot":"","isCommitted":true,"persistency":{"id":"99073389-333d-4a24-928c-1b7f3c3eb14d","offset":1264338,"count":145000},"meta":{"revision":0,"created":1742576498979,"version":0},"$loki":4},{"deleted":false,"accountName":"devstoreaccount1","containerName":"course-files","name":"1742837780842-VideoGuidelines.pdf","properties":{"creationTime":"2025-03-24T17:36:20.845Z","lastModified":"2025-03-24T17:36:20.845Z","etag":"\"0x1C3BAAE80804D40\"","contentLength":66340,"contentType":"application/pdf","contentMD5":{"type":"Buffer","data":[156,65,134,189,250,50,119,92,163,208,86,150,92,167,71,27]},"blobType":"BlockBlob","leaseStatus":"unlocked","leaseState":"available","serverEncrypted":true,"accessTier":"Hot","accessTierInferred":true,"accessTierChangeTime":"2025-03-24T17:36:20.845Z"},"snapshot":"","isCommitted":true,"persistency":{"id":"2d2beeb0-d433-4b1f-831b-ebdb9288f708","offset":0,"count":66340},"meta":{"revision":0,"created":1742837780853,"version":0},"$loki":5}],"idIndex":null,"binaryIndices":{"accountName":{"name":"accountName","dirty":false,"values":[4,3,2,1,0]},"containerName":{"name":"containerName","dirty":false,"values":[4,3,2,1,0]},"name":{"name":"name","dirty":false,"values":[0,1,2,3,4]},"snapshot":{"name":"snapshot","dirty":false,"values":[4,3,2,1,0]}},"constraints":null,"uniqueNames":[],"transforms":{},"objType":"$BLOBS_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":5,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]},{"name":"$BLOCKS_COLLECTION$","data":[],"idIndex":null,"binaryIndices":{"accountName":{"name":"accountName","dirty":false,"values":[]},"containerName":{"name":"containerName","dirty":false,"values":[]},"blobName":{"name":"blobName","dirty":false,"values":[]},"name":{"name":"name","dirty":false,"values":[]}},"constraints":null,"uniqueNames":[],"transforms":{},"objType":"$BLOCKS_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":0,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]}],"databaseVersion":1.5,"engineVersion":1.5,"autosave":true,"autosaveInterval":5000,"autosaveHandle":null,"throttledSaves":true,"options":{"persistenceMethod":"fs","autosave":true,"autosaveInterval":5000,"serializationMethod":"normal","destructureDelimiter":"$<\n"},"persistenceMethod":"fs","persistenceAdapter":null,"verbose":false,"events":{"init":[null],"loaded":[],"flushChanges":[],"close":[],"changes":[],"warning":[]},"ENV":"NODEJS"} \ No newline at end of file +{ + "filename": "C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_blob__.json", + "collections": [ + { + "name": "$SERVICES_COLLECTION$", + "data": [], + "idIndex": null, + "binaryIndices": {}, + "constraints": null, + "uniqueNames": ["accountName"], + "transforms": {}, + "objType": "$SERVICES_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 0, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + }, + { + "name": "$CONTAINERS_COLLECTION$", + "data": [ + { + "accountName": "devstoreaccount1", + "name": "course-files", + "properties": { + "etag": "\"0x20C1223A3927D00\"", + "lastModified": "2025-03-13T21:12:40.981Z", + "leaseStatus": "unlocked", + "leaseState": "available", + "publicAccess": "blob", + "hasImmutabilityPolicy": false, + "hasLegalHold": false + }, + "meta": { "revision": 0, "created": 1741900361031, "version": 0 }, + "$loki": 1 + } + ], + "idIndex": null, + "binaryIndices": { + "accountName": { "name": "accountName", "dirty": false, "values": [0] }, + "name": { "name": "name", "dirty": false, "values": [0] } + }, + "constraints": null, + "uniqueNames": [], + "transforms": {}, + "objType": "$CONTAINERS_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 1, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + }, + { + "name": "$BLOBS_COLLECTION$", + "data": [ + { + "deleted": false, + "accountName": "devstoreaccount1", + "containerName": "course-files", + "name": "1741900361039-2_ML_LinearRegression.pdf", + "properties": { + "creationTime": "2025-03-13T21:12:41.041Z", + "lastModified": "2025-03-13T21:12:41.041Z", + "etag": "\"0x23001DFC0318BA0\"", + "contentLength": 559669, + "contentType": "application/pdf", + "contentMD5": { + "type": "Buffer", + "data": [ + 43, 85, 103, 175, 186, 209, 77, 26, 185, 37, 42, 228, 191, 54, + 193, 79 + ] + }, + "blobType": "BlockBlob", + "leaseStatus": "unlocked", + "leaseState": "available", + "serverEncrypted": true, + "accessTier": "Hot", + "accessTierInferred": true, + "accessTierChangeTime": "2025-03-13T21:12:41.041Z" + }, + "snapshot": "", + "isCommitted": true, + "persistency": { + "id": "99073389-333d-4a24-928c-1b7f3c3eb14d", + "offset": 0, + "count": 559669 + }, + "meta": { "revision": 0, "created": 1741900361061, "version": 0 }, + "$loki": 1 + }, + { + "deleted": false, + "accountName": "devstoreaccount1", + "containerName": "course-files", + "name": "1741900784863-2_ML_LinearRegression.pdf", + "properties": { + "creationTime": "2025-03-13T21:19:44.865Z", + "lastModified": "2025-03-13T21:19:44.865Z", + "etag": "\"0x1E403531A477810\"", + "contentLength": 559669, + "contentType": "application/pdf", + "contentMD5": { + "type": "Buffer", + "data": [ + 212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, + 66, 126 + ] + }, + "blobType": "BlockBlob", + "leaseStatus": "unlocked", + "leaseState": "available", + "serverEncrypted": true, + "accessTier": "Hot", + "accessTierInferred": true, + "accessTierChangeTime": "2025-03-13T21:19:44.865Z" + }, + "snapshot": "", + "isCommitted": true, + "persistency": { + "id": "99073389-333d-4a24-928c-1b7f3c3eb14d", + "offset": 559669, + "count": 559669 + }, + "meta": { "revision": 0, "created": 1741900784878, "version": 0 }, + "$loki": 2 + }, + { + "deleted": false, + "accountName": "devstoreaccount1", + "containerName": "course-files", + "name": "1742576429640-2.png", + "properties": { + "creationTime": "2025-03-21T17:00:29.643Z", + "lastModified": "2025-03-21T17:00:29.643Z", + "etag": "\"0x2640C69A152EB40\"", + "contentLength": 145000, + "contentType": "image/png", + "contentMD5": { + "type": "Buffer", + "data": [ + 212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, + 66, 126 + ] + }, + "blobType": "BlockBlob", + "leaseStatus": "unlocked", + "leaseState": "available", + "serverEncrypted": true, + "accessTier": "Hot", + "accessTierInferred": true, + "accessTierChangeTime": "2025-03-21T17:00:29.643Z" + }, + "snapshot": "", + "isCommitted": true, + "persistency": { + "id": "99073389-333d-4a24-928c-1b7f3c3eb14d", + "offset": 1119338, + "count": 145000 + }, + "meta": { "revision": 0, "created": 1742576429663, "version": 0 }, + "$loki": 3 + }, + { + "deleted": false, + "accountName": "devstoreaccount1", + "containerName": "course-files", + "name": "1742576498970-2.png", + "properties": { + "creationTime": "2025-03-21T17:01:38.972Z", + "lastModified": "2025-03-21T17:01:38.972Z", + "etag": "\"0x1F192B26835AAB0\"", + "contentLength": 145000, + "contentType": "image/png", + "contentMD5": { + "type": "Buffer", + "data": [ + 212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, + 66, 126 + ] + }, + "blobType": "BlockBlob", + "leaseStatus": "unlocked", + "leaseState": "available", + "serverEncrypted": true, + "accessTier": "Hot", + "accessTierInferred": true, + "accessTierChangeTime": "2025-03-21T17:01:38.972Z" + }, + "snapshot": "", + "isCommitted": true, + "persistency": { + "id": "99073389-333d-4a24-928c-1b7f3c3eb14d", + "offset": 1264338, + "count": 145000 + }, + "meta": { "revision": 0, "created": 1742576498979, "version": 0 }, + "$loki": 4 + }, + { + "deleted": false, + "accountName": "devstoreaccount1", + "containerName": "course-files", + "name": "1742837780842-VideoGuidelines.pdf", + "properties": { + "creationTime": "2025-03-24T17:36:20.845Z", + "lastModified": "2025-03-24T17:36:20.845Z", + "etag": "\"0x1C3BAAE80804D40\"", + "contentLength": 66340, + "contentType": "application/pdf", + "contentMD5": { + "type": "Buffer", + "data": [ + 156, 65, 134, 189, 250, 50, 119, 92, 163, 208, 86, 150, 92, 167, + 71, 27 + ] + }, + "blobType": "BlockBlob", + "leaseStatus": "unlocked", + "leaseState": "available", + "serverEncrypted": true, + "accessTier": "Hot", + "accessTierInferred": true, + "accessTierChangeTime": "2025-03-24T17:36:20.845Z" + }, + "snapshot": "", + "isCommitted": true, + "persistency": { + "id": "2d2beeb0-d433-4b1f-831b-ebdb9288f708", + "offset": 0, + "count": 66340 + }, + "meta": { "revision": 0, "created": 1742837780853, "version": 0 }, + "$loki": 5 + } + ], + "idIndex": null, + "binaryIndices": { + "accountName": { + "name": "accountName", + "dirty": false, + "values": [4, 3, 2, 1, 0] + }, + "containerName": { + "name": "containerName", + "dirty": false, + "values": [4, 3, 2, 1, 0] + }, + "name": { "name": "name", "dirty": false, "values": [0, 1, 2, 3, 4] }, + "snapshot": { + "name": "snapshot", + "dirty": false, + "values": [4, 3, 2, 1, 0] + } + }, + "constraints": null, + "uniqueNames": [], + "transforms": {}, + "objType": "$BLOBS_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 5, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + }, + { + "name": "$BLOCKS_COLLECTION$", + "data": [], + "idIndex": null, + "binaryIndices": { + "accountName": { "name": "accountName", "dirty": false, "values": [] }, + "containerName": { + "name": "containerName", + "dirty": false, + "values": [] + }, + "blobName": { "name": "blobName", "dirty": false, "values": [] }, + "name": { "name": "name", "dirty": false, "values": [] } + }, + "constraints": null, + "uniqueNames": [], + "transforms": {}, + "objType": "$BLOCKS_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 0, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + } + ], + "databaseVersion": 1.5, + "engineVersion": 1.5, + "autosave": true, + "autosaveInterval": 5000, + "autosaveHandle": null, + "throttledSaves": true, + "options": { + "persistenceMethod": "fs", + "autosave": true, + "autosaveInterval": 5000, + "serializationMethod": "normal", + "destructureDelimiter": "$<\n" + }, + "persistenceMethod": "fs", + "persistenceAdapter": null, + "verbose": false, + "events": { + "init": [null], + "loaded": [], + "flushChanges": [], + "close": [], + "changes": [], + "warning": [] + }, + "ENV": "NODEJS" +} diff --git a/(azurite)/__azurite_db_blob_extent__.json b/(azurite)/__azurite_db_blob_extent__.json index 3a1741b7..e5876802 100644 --- a/(azurite)/__azurite_db_blob_extent__.json +++ b/(azurite)/__azurite_db_blob_extent__.json @@ -1 +1,98 @@ -{"filename":"C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_blob_extent__.json","collections":[{"name":"$EXTENTS_COLLECTION$","data":[{"id":"99073389-333d-4a24-928c-1b7f3c3eb14d","locationId":"Default","path":"99073389-333d-4a24-928c-1b7f3c3eb14d","size":1409338,"lastModifiedInMS":1741900361055,"meta":{"revision":3,"created":1741900361055,"version":0,"updated":1742576498978},"$loki":1,"LastModifyInMS":1742576498978},{"id":"2d2beeb0-d433-4b1f-831b-ebdb9288f708","locationId":"Default","path":"2d2beeb0-d433-4b1f-831b-ebdb9288f708","size":66340,"lastModifiedInMS":1742837780851,"meta":{"revision":0,"created":1742837780851,"version":0},"$loki":2}],"idIndex":null,"binaryIndices":{"id":{"name":"id","dirty":false,"values":[1,0]}},"constraints":null,"uniqueNames":[],"transforms":{},"objType":"$EXTENTS_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":2,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]}],"databaseVersion":1.5,"engineVersion":1.5,"autosave":true,"autosaveInterval":5000,"autosaveHandle":null,"throttledSaves":true,"options":{"persistenceMethod":"fs","autosave":true,"autosaveInterval":5000,"serializationMethod":"normal","destructureDelimiter":"$<\n"},"persistenceMethod":"fs","persistenceAdapter":null,"verbose":false,"events":{"init":[null],"loaded":[],"flushChanges":[],"close":[],"changes":[],"warning":[]},"ENV":"NODEJS"} \ No newline at end of file +{ + "filename": "C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_blob_extent__.json", + "collections": [ + { + "name": "$EXTENTS_COLLECTION$", + "data": [ + { + "id": "99073389-333d-4a24-928c-1b7f3c3eb14d", + "locationId": "Default", + "path": "99073389-333d-4a24-928c-1b7f3c3eb14d", + "size": 1409338, + "lastModifiedInMS": 1741900361055, + "meta": { + "revision": 3, + "created": 1741900361055, + "version": 0, + "updated": 1742576498978 + }, + "$loki": 1, + "LastModifyInMS": 1742576498978 + }, + { + "id": "2d2beeb0-d433-4b1f-831b-ebdb9288f708", + "locationId": "Default", + "path": "2d2beeb0-d433-4b1f-831b-ebdb9288f708", + "size": 66340, + "lastModifiedInMS": 1742837780851, + "meta": { "revision": 0, "created": 1742837780851, "version": 0 }, + "$loki": 2 + } + ], + "idIndex": null, + "binaryIndices": { + "id": { "name": "id", "dirty": false, "values": [1, 0] } + }, + "constraints": null, + "uniqueNames": [], + "transforms": {}, + "objType": "$EXTENTS_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 2, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + } + ], + "databaseVersion": 1.5, + "engineVersion": 1.5, + "autosave": true, + "autosaveInterval": 5000, + "autosaveHandle": null, + "throttledSaves": true, + "options": { + "persistenceMethod": "fs", + "autosave": true, + "autosaveInterval": 5000, + "serializationMethod": "normal", + "destructureDelimiter": "$<\n" + }, + "persistenceMethod": "fs", + "persistenceAdapter": null, + "verbose": false, + "events": { + "init": [null], + "loaded": [], + "flushChanges": [], + "close": [], + "changes": [], + "warning": [] + }, + "ENV": "NODEJS" +} diff --git a/(azurite)/__azurite_db_queue__.json b/(azurite)/__azurite_db_queue__.json index a5bcb523..72eb050e 100644 --- a/(azurite)/__azurite_db_queue__.json +++ b/(azurite)/__azurite_db_queue__.json @@ -1 +1,161 @@ -{"filename":"C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_queue__.json","collections":[{"name":"$SERVICES_COLLECTION$","data":[],"idIndex":null,"binaryIndices":{},"constraints":null,"uniqueNames":["accountName"],"transforms":{},"objType":"$SERVICES_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":0,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]},{"name":"$QUEUES_COLLECTION$","data":[],"idIndex":null,"binaryIndices":{"accountName":{"name":"accountName","dirty":false,"values":[]},"name":{"name":"name","dirty":false,"values":[]}},"constraints":null,"uniqueNames":[],"transforms":{},"objType":"$QUEUES_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":0,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]},{"name":"$MESSAGES_COLLECTION$","data":[],"idIndex":null,"binaryIndices":{"accountName":{"name":"accountName","dirty":false,"values":[]},"queueName":{"name":"queueName","dirty":false,"values":[]},"messageId":{"name":"messageId","dirty":false,"values":[]},"visibleTime":{"name":"visibleTime","dirty":false,"values":[]}},"constraints":null,"uniqueNames":[],"transforms":{},"objType":"$MESSAGES_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":0,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]}],"databaseVersion":1.5,"engineVersion":1.5,"autosave":true,"autosaveInterval":5000,"autosaveHandle":null,"throttledSaves":true,"options":{"persistenceMethod":"fs","autosave":true,"autosaveInterval":5000,"serializationMethod":"normal","destructureDelimiter":"$<\n"},"persistenceMethod":"fs","persistenceAdapter":null,"verbose":false,"events":{"init":[null],"loaded":[],"flushChanges":[],"close":[],"changes":[],"warning":[]},"ENV":"NODEJS"} \ No newline at end of file +{ + "filename": "C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_queue__.json", + "collections": [ + { + "name": "$SERVICES_COLLECTION$", + "data": [], + "idIndex": null, + "binaryIndices": {}, + "constraints": null, + "uniqueNames": ["accountName"], + "transforms": {}, + "objType": "$SERVICES_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 0, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + }, + { + "name": "$QUEUES_COLLECTION$", + "data": [], + "idIndex": null, + "binaryIndices": { + "accountName": { "name": "accountName", "dirty": false, "values": [] }, + "name": { "name": "name", "dirty": false, "values": [] } + }, + "constraints": null, + "uniqueNames": [], + "transforms": {}, + "objType": "$QUEUES_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 0, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + }, + { + "name": "$MESSAGES_COLLECTION$", + "data": [], + "idIndex": null, + "binaryIndices": { + "accountName": { "name": "accountName", "dirty": false, "values": [] }, + "queueName": { "name": "queueName", "dirty": false, "values": [] }, + "messageId": { "name": "messageId", "dirty": false, "values": [] }, + "visibleTime": { "name": "visibleTime", "dirty": false, "values": [] } + }, + "constraints": null, + "uniqueNames": [], + "transforms": {}, + "objType": "$MESSAGES_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 0, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + } + ], + "databaseVersion": 1.5, + "engineVersion": 1.5, + "autosave": true, + "autosaveInterval": 5000, + "autosaveHandle": null, + "throttledSaves": true, + "options": { + "persistenceMethod": "fs", + "autosave": true, + "autosaveInterval": 5000, + "serializationMethod": "normal", + "destructureDelimiter": "$<\n" + }, + "persistenceMethod": "fs", + "persistenceAdapter": null, + "verbose": false, + "events": { + "init": [null], + "loaded": [], + "flushChanges": [], + "close": [], + "changes": [], + "warning": [] + }, + "ENV": "NODEJS" +} diff --git a/(azurite)/__azurite_db_queue_extent__.json b/(azurite)/__azurite_db_queue_extent__.json index 099acac7..a3253368 100644 --- a/(azurite)/__azurite_db_queue_extent__.json +++ b/(azurite)/__azurite_db_queue_extent__.json @@ -1 +1,71 @@ -{"filename":"C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_queue_extent__.json","collections":[{"name":"$EXTENTS_COLLECTION$","data":[],"idIndex":null,"binaryIndices":{"id":{"name":"id","dirty":false,"values":[]}},"constraints":null,"uniqueNames":[],"transforms":{},"objType":"$EXTENTS_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":0,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]}],"databaseVersion":1.5,"engineVersion":1.5,"autosave":true,"autosaveInterval":5000,"autosaveHandle":null,"throttledSaves":true,"options":{"persistenceMethod":"fs","autosave":true,"autosaveInterval":5000,"serializationMethod":"normal","destructureDelimiter":"$<\n"},"persistenceMethod":"fs","persistenceAdapter":null,"verbose":false,"events":{"init":[null],"loaded":[],"flushChanges":[],"close":[],"changes":[],"warning":[]},"ENV":"NODEJS"} \ No newline at end of file +{ + "filename": "C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_queue_extent__.json", + "collections": [ + { + "name": "$EXTENTS_COLLECTION$", + "data": [], + "idIndex": null, + "binaryIndices": { "id": { "name": "id", "dirty": false, "values": [] } }, + "constraints": null, + "uniqueNames": [], + "transforms": {}, + "objType": "$EXTENTS_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 0, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + } + ], + "databaseVersion": 1.5, + "engineVersion": 1.5, + "autosave": true, + "autosaveInterval": 5000, + "autosaveHandle": null, + "throttledSaves": true, + "options": { + "persistenceMethod": "fs", + "autosave": true, + "autosaveInterval": 5000, + "serializationMethod": "normal", + "destructureDelimiter": "$<\n" + }, + "persistenceMethod": "fs", + "persistenceAdapter": null, + "verbose": false, + "events": { + "init": [null], + "loaded": [], + "flushChanges": [], + "close": [], + "changes": [], + "warning": [] + }, + "ENV": "NODEJS" +} diff --git a/(azurite)/__azurite_db_table__.json b/(azurite)/__azurite_db_table__.json index 10c20a92..750337c9 100644 --- a/(azurite)/__azurite_db_table__.json +++ b/(azurite)/__azurite_db_table__.json @@ -1 +1,115 @@ -{"filename":"C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_table__.json","collections":[{"name":"$TABLES_COLLECTION$","data":[],"idIndex":null,"binaryIndices":{"account":{"name":"account","dirty":false,"values":[]},"table":{"name":"table","dirty":false,"values":[]}},"constraints":null,"uniqueNames":[],"transforms":{},"objType":"$TABLES_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":0,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]},{"name":"$SERVICES_COLLECTION$","data":[],"idIndex":null,"binaryIndices":{},"constraints":null,"uniqueNames":["accountName"],"transforms":{},"objType":"$SERVICES_COLLECTION$","dirty":false,"cachedIndex":null,"cachedBinaryIndex":null,"cachedData":null,"adaptiveBinaryIndices":true,"transactional":false,"cloneObjects":false,"cloneMethod":"parse-stringify","asyncListeners":false,"disableMeta":false,"disableChangesApi":true,"disableDeltaChangesApi":true,"autoupdate":false,"serializableIndices":true,"disableFreeze":true,"ttl":null,"maxId":0,"DynamicViews":[],"events":{"insert":[],"update":[],"pre-insert":[],"pre-update":[],"close":[],"flushbuffer":[],"error":[],"delete":[null],"warning":[null]},"changes":[],"dirtyIds":[]}],"databaseVersion":1.5,"engineVersion":1.5,"autosave":true,"autosaveInterval":5000,"autosaveHandle":null,"throttledSaves":true,"options":{"persistenceMethod":"fs","autosave":true,"autosaveInterval":5000,"serializationMethod":"normal","destructureDelimiter":"$<\n"},"persistenceMethod":"fs","persistenceAdapter":null,"verbose":false,"events":{"init":[null],"loaded":[],"flushChanges":[],"close":[],"changes":[],"warning":[]},"ENV":"NODEJS"} \ No newline at end of file +{ + "filename": "C:\\Users\\Ivyla\\Documents\\GitHub\\COMP0067_2025_Team1\\__azurite_db_table__.json", + "collections": [ + { + "name": "$TABLES_COLLECTION$", + "data": [], + "idIndex": null, + "binaryIndices": { + "account": { "name": "account", "dirty": false, "values": [] }, + "table": { "name": "table", "dirty": false, "values": [] } + }, + "constraints": null, + "uniqueNames": [], + "transforms": {}, + "objType": "$TABLES_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 0, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + }, + { + "name": "$SERVICES_COLLECTION$", + "data": [], + "idIndex": null, + "binaryIndices": {}, + "constraints": null, + "uniqueNames": ["accountName"], + "transforms": {}, + "objType": "$SERVICES_COLLECTION$", + "dirty": false, + "cachedIndex": null, + "cachedBinaryIndex": null, + "cachedData": null, + "adaptiveBinaryIndices": true, + "transactional": false, + "cloneObjects": false, + "cloneMethod": "parse-stringify", + "asyncListeners": false, + "disableMeta": false, + "disableChangesApi": true, + "disableDeltaChangesApi": true, + "autoupdate": false, + "serializableIndices": true, + "disableFreeze": true, + "ttl": null, + "maxId": 0, + "DynamicViews": [], + "events": { + "insert": [], + "update": [], + "pre-insert": [], + "pre-update": [], + "close": [], + "flushbuffer": [], + "error": [], + "delete": [null], + "warning": [null] + }, + "changes": [], + "dirtyIds": [] + } + ], + "databaseVersion": 1.5, + "engineVersion": 1.5, + "autosave": true, + "autosaveInterval": 5000, + "autosaveHandle": null, + "throttledSaves": true, + "options": { + "persistenceMethod": "fs", + "autosave": true, + "autosaveInterval": 5000, + "serializationMethod": "normal", + "destructureDelimiter": "$<\n" + }, + "persistenceMethod": "fs", + "persistenceAdapter": null, + "verbose": false, + "events": { + "init": [null], + "loaded": [], + "flushChanges": [], + "close": [], + "changes": [], + "warning": [] + }, + "ENV": "NODEJS" +} diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 9bafd79d..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1 +0,0 @@ -{"extends":"next/core-web-vitals","rules":{"@typescript-eslint/no-explicit-any":"off","@typescript-eslint/no-unused-vars":"off","react/display-name":"off","react/no-unescaped-entities":"off","@next/next/no-img-element":"off","react-hooks/exhaustive-deps":"off"}} diff --git a/eslint.config.mjs b/eslint.config.mjs index c85fb67c..29a3424b 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -11,6 +11,16 @@ const compat = new FlatCompat({ const eslintConfig = [ ...compat.extends("next/core-web-vitals", "next/typescript"), + { + rules: { + "@typescript-eslint/no-explicit-any": "warn", + "@typescript-eslint/no-unused-vars": "warn", + "react/display-name": "warn", + "react/no-unescaped-entities": "warn", + "@next/next/no-img-element": "warn", + "react-hooks/exhaustive-deps": "warn" + } + } ]; export default eslintConfig; diff --git a/next.config.js b/next.config.ts similarity index 61% rename from next.config.js rename to next.config.ts index f08491de..ad2d180d 100644 --- a/next.config.js +++ b/next.config.ts @@ -1,31 +1,30 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { +import type { NextConfig } from "next"; +const nextConfig: NextConfig = { // todo: this need to set to true or remove it as default is true. set false as chart was giving error when first render // https://github.com/apexcharts/apexcharts.js/issues/3652 reactStrictMode: false, modularizeImports: { - '@mui/material': { - transform: '@mui/material/{{member}}' + "@mui/material": { + transform: "@mui/material/{{member}}", }, - '@mui/lab': { - transform: '@mui/lab/{{member}}' + "@mui/lab": { + transform: "@mui/lab/{{member}}", + }, + "@mui/icons-material": { + transform: "@mui/icons-material/{{member}}", }, - '@mui/icons-material': { - transform: '@mui/icons-material/{{member}}' - } }, images: { remotePatterns: [ { - protocol: 'https', - hostname: 'flagcdn.com', - pathname: '**' + protocol: "https", + hostname: "flagcdn.com", + pathname: "**", }, - ] + ], }, - eslint: { // Warning: This allows production builds to successfully complete even if // your project has ESLint errors. @@ -36,9 +35,6 @@ const nextConfig = { // your project has type errors. ignoreBuildErrors: true, }, -} - - - -module.exports = nextConfig +}; +export default nextConfig; diff --git a/prisma/seed.mjs b/prisma/seed.mjs index 7a13a760..f39babd6 100644 --- a/prisma/seed.mjs +++ b/prisma/seed.mjs @@ -1,212 +1,228 @@ -import { PrismaClient, Appointment_Type } from '@prisma/client' -import bcrypt from 'bcrypt'; +import { PrismaClient, Appointment_Type } from "@prisma/client"; +import bcrypt from "bcrypt"; // Initialise Prisma Client export const db = new PrismaClient(); - -async function cleanDatabase(){ - await db.user.deleteMany(); - await db.attendance.deleteMany(); - await db.message.deleteMany(); - await db.supportTicket.deleteMany(); - await db.grade.deleteMany(); - await db.forum.deleteMany(); - await db.courseContent.deleteMany(); - await db.assignment.deleteMany(); - await db.course.deleteMany(); - await db.appointment.deleteMany(); - await db.account.deleteMany(); - await db.session.deleteMany(); +async function cleanDatabase() { + await db.user.deleteMany(); + await db.attendance.deleteMany(); + await db.message.deleteMany(); + await db.supportTicket.deleteMany(); + await db.grade.deleteMany(); + await db.forum.deleteMany(); + await db.courseContent.deleteMany(); + await db.assignment.deleteMany(); + await db.course.deleteMany(); + await db.appointment.deleteMany(); + await db.account.deleteMany(); + await db.session.deleteMany(); } async function seedData() { - const passwordHash = await bcrypt.hash('123456', 10); + const passwordHash = await bcrypt.hash("123456", 10); // First create a tutor const tutor1 = await db.user.create({ - data: { - email: 'tutor@medefine.com', - type: 'TUTORS', - password: passwordHash, - name: 'Dr. Smith', - dateOfBirth: '1980-01-01', - address: '789 Education Road', - phoneNumber: '5555555555', - prefferedMeansOfContact: 'email', - location: 'Berlin, Germany', - timezone: 'Germany/Europe' - - } + data: { + email: "tutor@medefine.com", + type: "TUTORS", + password: passwordHash, + name: "Dr. Smith", + dateOfBirth: "1980-01-01", + address: "789 Education Road", + phoneNumber: "5555555555", + prefferedMeansOfContact: "email", + location: "Berlin, Germany", + timezone: "Germany/Europe", + }, }); // Then create students (and another tutor) const tutor2 = await db.user.create({ - data: { - email: 'petermontigue6@gmail.com', - type: 'TUTORS', - name: 'Peter Montigue', - enabled: true, - dateOfBirth: '1972-05-07', - phoneNumber: '0987654321', - password: passwordHash, - location: 'London, UK', - timezone: 'London/Europe' - } + data: { + email: "petermontigue6@gmail.com", + type: "TUTORS", + name: "Peter Montigue", + enabled: true, + dateOfBirth: "1972-05-07", + phoneNumber: "0987654321", + password: passwordHash, + location: "London, UK", + timezone: "London/Europe", + }, }); const student1 = await db.user.create({ - data: { - email: 'student1@medefine.com', - type: 'STUDENTS', - name: 'John Doe', - enabled: true, - dateOfBirth: '1995-01-01', - address: '123 Medical Street', - phoneNumber: '1234567890', - prefferedMeansOfContact: 'email', - school: 'Medical School', - yearOfGraduation: new Date('2025-06-01'), - location: 'New York, USA', - timezone: 'USA', - tutorId: tutor2.id, - year: 9, - password: passwordHash - } + data: { + email: "student1@medefine.com", + type: "STUDENTS", + name: "John Doe", + enabled: true, + dateOfBirth: "1995-01-01", + address: "123 Medical Street", + phoneNumber: "1234567890", + prefferedMeansOfContact: "email", + school: "Medical School", + yearOfGraduation: new Date("2025-06-01"), + location: "New York, USA", + timezone: "USA", + tutorId: tutor2.id, + year: 9, + password: passwordHash, + }, }); const student2 = await db.user.create({ - data: { - email: 'student2@medefine.com', - type: 'STUDENTS', - password: passwordHash, - name: 'Jane Smith', - enabled: true, - dateOfBirth: '1996-02-02', - address: '456 Health Avenue', - phoneNumber: '0987654321', - prefferedMeansOfContact: 'phone', - school: 'Medical School', - yearOfGraduation: new Date('2025-06-01'), - location: 'London, UK', - timezone: 'London/Europe', - tutorId: tutor1.id, - year: 10 - },}) - + data: { + email: "student2@medefine.com", + type: "STUDENTS", + password: passwordHash, + name: "Jane Smith", + enabled: true, + dateOfBirth: "1996-02-02", + address: "456 Health Avenue", + phoneNumber: "0987654321", + prefferedMeansOfContact: "phone", + school: "Medical School", + yearOfGraduation: new Date("2025-06-01"), + location: "London, UK", + timezone: "London/Europe", + tutorId: tutor1.id, + year: 10, + }, + }); + const student3 = await db.user.create({ - data: { - email: 'henrystevenson506@gmail.com', - type: 'STUDENTS', - name: 'Henry Stevenson', - enabled: true, - dateOfBirth: '2008-06-14', - phoneNumber: '0987654321', - prefferedMeansOfContact: 'phone', - school: 'Medical School', - yearOfGraduation: new Date('2025-06-01'), - tutorId: tutor2.id, - year: 11, - password: passwordHash, - location: 'London, UK', - timezone: 'London/Europe' - } + data: { + email: "henrystevenson506@gmail.com", + type: "STUDENTS", + name: "Henry Stevenson", + enabled: true, + dateOfBirth: "2008-06-14", + phoneNumber: "0987654321", + prefferedMeansOfContact: "phone", + school: "Medical School", + yearOfGraduation: new Date("2025-06-01"), + tutorId: tutor2.id, + year: 11, + password: passwordHash, + location: "London, UK", + timezone: "London/Europe", + }, }); - - const admin1 = await db.user.create({ - data: { - email: 'admin@medefine.com', - password: passwordHash, - type: 'ADMIN', - name: 'Admin', - enabled: true, - dateOfBirth: '1972-05-07', - phoneNumber: '0987654321', - },}) + const admin1 = await db.user.create({ + data: { + email: "admin@medefine.com", + password: passwordHash, + type: "ADMIN", + name: "Admin", + enabled: true, + dateOfBirth: "1972-05-07", + phoneNumber: "0987654321", + }, + }); - // Create courses and internships await db.course.createMany({ - data: [ - { - title: 'Fundamentals of Medical Terminology', - description: 'Learn the basic terminology used in medicine and healthcare. This course covers root words, prefixes, suffixes, and common medical terms.', - imageUrl: 'https://images.unsplash.com/photo-1486312338219-ce68d2c6f44d', - headerImage: 'https://plus.unsplash.com/premium_photo-1661432427982-844655e5fa8a?q=80&w=3132&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - year: 1, - courseCode: 'MED101', - duration: '12 weeks', - type: 'course', - tags: ['Year 10'] - }, - { - title: 'Introduction to Human Anatomy', - description: 'A comprehensive introduction to human anatomy, covering all major body systems and their functions.', - imageUrl: 'https://plus.unsplash.com/premium_photo-1672759455907-bdaef741cd88?q=80&w=3216&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - headerImage: 'https://plus.unsplash.com/premium_photo-1661698939645-8c8690757830?q=80&w=3270&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - year: 1, - courseCode: 'MED102', - duration: '16 weeks', - type: 'course', - tags: ['Year 9'] - }, - { - title: 'Pathophysiology for Health Professionals', - description: 'Study of disease processes and their effects on human body systems.', - imageUrl: 'https://plus.unsplash.com/premium_photo-1676325101835-f2e4214eff5b?q=80&w=3271&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - headerImage: 'https://plus.unsplash.com/premium_photo-1723867439555-d6f2be9675d5?q=80&w=3270&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - year: 2, - courseCode: 'MED201', - duration: '14 weeks', - type: 'course', - tags: ['Year 11'] - }, - // Internships - { - title: 'Clinical Research Internship', - description: 'Gain hands-on experience in clinical research at a leading medical center. Work on ongoing research projects and learn about research methodologies.', - imageUrl: 'https://plus.unsplash.com/premium_photo-1661432427982-844655e5fa8a?q=80&w=3132&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - headerImage: 'https://plus.unsplash.com/premium_photo-1661432427982-844655e5fa8a?q=80&w=3132&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - year: 2, - courseCode: 'INT201', - duration: '12 weeks', - type: 'internship', - tags: ['Year 12'] - }, - { - title: 'Hospital Administration Internship', - description: 'Learn about healthcare management and hospital operations. Work with administrators on various projects and gain insights into healthcare systems.', - imageUrl: 'https://plus.unsplash.com/premium_photo-1661698939645-8c8690757830?q=80&w=3270&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - headerImage: 'https://plus.unsplash.com/premium_photo-1661698939645-8c8690757830?q=80&w=3270&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - year: 3, - courseCode: 'INT301', - duration: '16 weeks', - type: 'internship', - tags: ['Year 9', 'Year 10', 'Year 11', 'Year 12'] - }, - { - title: 'Medical Technology Internship', - description: 'Work with cutting-edge medical technology and learn about its implementation in healthcare settings. Gain practical experience with medical devices and software.', - imageUrl: 'https://plus.unsplash.com/premium_photo-1672759455907-bdaef741cd88?q=80&w=3216&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - headerImage: 'https://plus.unsplash.com/premium_photo-1672759455907-bdaef741cd88?q=80&w=3216&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - year: 3, - courseCode: 'INT302', - duration: '14 weeks', - type: 'internship', - tags: ['Year 11'] - } - ] + data: [ + { + title: "Fundamentals of Medical Terminology", + description: + "Learn the basic terminology used in medicine and healthcare. This course covers root words, prefixes, suffixes, and common medical terms.", + imageUrl: + "https://images.unsplash.com/photo-1486312338219-ce68d2c6f44d", + headerImage: + "https://plus.unsplash.com/premium_photo-1661432427982-844655e5fa8a?q=80&w=3132&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + year: 1, + courseCode: "MED101", + duration: "12 weeks", + type: "course", + tags: ["Year 10"], + }, + { + title: "Introduction to Human Anatomy", + description: + "A comprehensive introduction to human anatomy, covering all major body systems and their functions.", + imageUrl: + "https://plus.unsplash.com/premium_photo-1672759455907-bdaef741cd88?q=80&w=3216&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + headerImage: + "https://plus.unsplash.com/premium_photo-1661698939645-8c8690757830?q=80&w=3270&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + year: 1, + courseCode: "MED102", + duration: "16 weeks", + type: "course", + tags: ["Year 9"], + }, + { + title: "Pathophysiology for Health Professionals", + description: + "Study of disease processes and their effects on human body systems.", + imageUrl: + "https://plus.unsplash.com/premium_photo-1676325101835-f2e4214eff5b?q=80&w=3271&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + headerImage: + "https://plus.unsplash.com/premium_photo-1723867439555-d6f2be9675d5?q=80&w=3270&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + year: 2, + courseCode: "MED201", + duration: "14 weeks", + type: "course", + tags: ["Year 11"], + }, + // Internships + { + title: "Clinical Research Internship", + description: + "Gain hands-on experience in clinical research at a leading medical center. Work on ongoing research projects and learn about research methodologies.", + imageUrl: + "https://plus.unsplash.com/premium_photo-1661432427982-844655e5fa8a?q=80&w=3132&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + headerImage: + "https://plus.unsplash.com/premium_photo-1661432427982-844655e5fa8a?q=80&w=3132&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + year: 2, + courseCode: "INT201", + duration: "12 weeks", + type: "internship", + tags: ["Year 12"], + }, + { + title: "Hospital Administration Internship", + description: + "Learn about healthcare management and hospital operations. Work with administrators on various projects and gain insights into healthcare systems.", + imageUrl: + "https://plus.unsplash.com/premium_photo-1661698939645-8c8690757830?q=80&w=3270&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + headerImage: + "https://plus.unsplash.com/premium_photo-1661698939645-8c8690757830?q=80&w=3270&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + year: 3, + courseCode: "INT301", + duration: "16 weeks", + type: "internship", + tags: ["Year 9", "Year 10", "Year 11", "Year 12"], + }, + { + title: "Medical Technology Internship", + description: + "Work with cutting-edge medical technology and learn about its implementation in healthcare settings. Gain practical experience with medical devices and software.", + imageUrl: + "https://plus.unsplash.com/premium_photo-1672759455907-bdaef741cd88?q=80&w=3216&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + headerImage: + "https://plus.unsplash.com/premium_photo-1672759455907-bdaef741cd88?q=80&w=3216&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + year: 3, + courseCode: "INT302", + duration: "14 weeks", + type: "internship", + tags: ["Year 11"], + }, + ], }); - //==========================FORUM-TIM============================= - - // create posts data - await db.forum.createMany({ - data: [ - { - title: 'Understanding Medical Terminology Basics', - details: 'A comprehensive guide to medical terminology fundamentals.', - body: ` + //==========================FORUM-TIM============================= + + // create posts data + await db.forum.createMany({ + data: [ + { + title: "Understanding Medical Terminology Basics", + details: "A comprehensive guide to medical terminology fundamentals.", + body: `

Welcome to Medical Terminology 101!

Today we'll cover the essential basics that every medical student needs to know. Here's what we'll discuss: