timetracker update

This commit is contained in:
Daniel Goc
2026-03-11 09:33:36 +01:00
parent bbf8a2c133
commit 9ef4bb219b
121 changed files with 4328 additions and 2231 deletions

View File

@@ -34,6 +34,7 @@ vue:
general: 300
validate_error: 301
repo_chart: 302
verify_email : 303
save_to_file: true

View File

@@ -8,7 +8,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 180,
"column": 25
}
@@ -22,7 +22,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 180,
"column": 25
}
@@ -36,7 +36,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 180,
"column": 25
}
@@ -50,7 +50,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 226,
"column": 25
}
@@ -64,7 +64,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 226,
"column": 25
}
@@ -78,7 +78,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 226,
"column": 25
}
@@ -92,7 +92,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 210,
"column": 25
}
@@ -106,7 +106,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 210,
"column": 25
}
@@ -120,7 +120,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 210,
"column": 25
}
@@ -134,7 +134,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 312,
"column": 25
}
@@ -148,7 +148,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 312,
"column": 25
}
@@ -162,7 +162,7 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 312,
"column": 25
}
@@ -950,7 +950,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 122,
"column": 21
}
@@ -964,7 +964,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 122,
"column": 21
}
@@ -978,7 +978,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 122,
"column": 21
}
@@ -992,7 +992,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 120,
"column": 21
}
@@ -1006,7 +1006,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 120,
"column": 21
}
@@ -1020,7 +1020,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 120,
"column": 21
}
@@ -1034,7 +1034,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 116,
"column": 21
}
@@ -1048,7 +1048,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 116,
"column": 21
}
@@ -1062,7 +1062,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 116,
"column": 21
}
@@ -1076,7 +1076,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 118,
"column": 21
}
@@ -1090,7 +1090,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 118,
"column": 21
}
@@ -1104,7 +1104,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 118,
"column": 21
}
@@ -1118,7 +1118,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 83,
"column": 21
}
@@ -1132,7 +1132,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 83,
"column": 21
}
@@ -1146,7 +1146,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 83,
"column": 21
}
@@ -1160,7 +1160,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 81,
"column": 21
}
@@ -1174,7 +1174,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 81,
"column": 21
}
@@ -1188,7 +1188,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 81,
"column": 21
}
@@ -1202,7 +1202,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 93,
"column": 21
}
@@ -1216,7 +1216,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 93,
"column": 21
}
@@ -1230,7 +1230,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 93,
"column": 21
}
@@ -1244,7 +1244,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 91,
"column": 21
}
@@ -1258,7 +1258,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 91,
"column": 21
}
@@ -1272,7 +1272,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 91,
"column": 21
}
@@ -1286,7 +1286,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 89,
"column": 21
}
@@ -1300,7 +1300,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 89,
"column": 21
}
@@ -1314,7 +1314,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 89,
"column": 21
}
@@ -1328,12 +1328,12 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 353,
"column": 24
},
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 127,
"column": 21
}
@@ -1347,12 +1347,12 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 353,
"column": 24
},
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 127,
"column": 21
}
@@ -1366,12 +1366,12 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 353,
"column": 24
},
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 127,
"column": 21
}
@@ -1385,12 +1385,12 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 394,
"column": 24
},
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 71,
"column": 21
}
@@ -1404,12 +1404,12 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 394,
"column": 24
},
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 71,
"column": 21
}
@@ -1423,12 +1423,12 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 394,
"column": 24
},
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 71,
"column": 21
}
@@ -1442,7 +1442,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 73,
"column": 21
}
@@ -1456,7 +1456,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 73,
"column": 21
}
@@ -1470,7 +1470,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 73,
"column": 21
}
@@ -1484,7 +1484,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 106,
"column": 21
}
@@ -1498,7 +1498,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 106,
"column": 21
}
@@ -1512,7 +1512,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 106,
"column": 21
}
@@ -1526,7 +1526,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 124,
"column": 21
}
@@ -1540,7 +1540,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 124,
"column": 21
}
@@ -1554,7 +1554,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 124,
"column": 21
}
@@ -1568,7 +1568,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 100,
"column": 21
}
@@ -1582,7 +1582,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 100,
"column": 21
}
@@ -1596,7 +1596,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 100,
"column": 21
}
@@ -1610,12 +1610,12 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 377,
"column": 24
},
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 85,
"column": 21
}
@@ -1629,12 +1629,12 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 377,
"column": 24
},
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 85,
"column": 21
}
@@ -1648,12 +1648,12 @@
"data": "",
"locations": [
{
"file": "../app/delivery/web/public/auth.go",
"file": "../app/delivery/web/api/public/auth.go",
"line": 377,
"column": 24
},
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 85,
"column": 21
}
@@ -1667,7 +1667,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 111,
"column": 21
}
@@ -1681,7 +1681,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 111,
"column": 21
}
@@ -1695,7 +1695,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 111,
"column": 21
}
@@ -1709,7 +1709,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 75,
"column": 21
}
@@ -1723,7 +1723,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 75,
"column": 21
}
@@ -1737,7 +1737,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 75,
"column": 21
}
@@ -1751,7 +1751,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 104,
"column": 21
}
@@ -1765,7 +1765,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 104,
"column": 21
}
@@ -1779,7 +1779,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 104,
"column": 21
}
@@ -1793,7 +1793,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 97,
"column": 21
}
@@ -1807,7 +1807,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 97,
"column": 21
}
@@ -1821,7 +1821,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 97,
"column": 21
}
@@ -1835,7 +1835,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 102,
"column": 21
}
@@ -1849,7 +1849,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 102,
"column": 21
}
@@ -1863,7 +1863,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 102,
"column": 21
}
@@ -1877,7 +1877,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 87,
"column": 21
}
@@ -1891,7 +1891,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 87,
"column": 21
}
@@ -1905,7 +1905,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 87,
"column": 21
}
@@ -1919,7 +1919,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 108,
"column": 21
}
@@ -1933,7 +1933,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 108,
"column": 21
}
@@ -1947,7 +1947,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 108,
"column": 21
}
@@ -1961,7 +1961,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 95,
"column": 21
}
@@ -1975,7 +1975,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 95,
"column": 21
}
@@ -1989,7 +1989,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 95,
"column": 21
}
@@ -2003,7 +2003,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 79,
"column": 21
}
@@ -2017,7 +2017,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 79,
"column": 21
}
@@ -2031,7 +2031,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 79,
"column": 21
}
@@ -2045,7 +2045,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 77,
"column": 21
}
@@ -2059,7 +2059,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 77,
"column": 21
}
@@ -2073,7 +2073,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 77,
"column": 21
}
@@ -2087,7 +2087,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 113,
"column": 21
}
@@ -2101,7 +2101,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 113,
"column": 21
}
@@ -2115,7 +2115,7 @@
"data": "",
"locations": [
{
"file": "../app/view/errors.go",
"file": "../app/utils/responseErrors/response_errors.go",
"line": 113,
"column": 21
}
@@ -2129,7 +2129,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 19,
"column": 47
}
@@ -2143,7 +2143,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 19,
"column": 47
}
@@ -2157,7 +2157,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 19,
"column": 47
}
@@ -2171,7 +2171,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 20,
"column": 47
}
@@ -2185,7 +2185,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 20,
"column": 47
}
@@ -2199,7 +2199,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 20,
"column": 47
}
@@ -2297,7 +2297,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 21,
"column": 47
}
@@ -2311,7 +2311,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 21,
"column": 47
}
@@ -2325,7 +2325,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 21,
"column": 47
}
@@ -2339,7 +2339,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 22,
"column": 47
}
@@ -2353,7 +2353,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 22,
"column": 47
}
@@ -2367,7 +2367,7 @@
"data": "",
"locations": [
{
"file": "../app/service/langs/service.go",
"file": "../app/service/langsService/service.go",
"line": 22,
"column": 47
}

View File

@@ -109,6 +109,26 @@ CREATE TABLE IF NOT EXISTS "public"."customer_repo_accesses" (
);
-- refresh_tokens
CREATE TABLE IF NOT EXISTS "public"."refresh_tokens" (
"id" SERIAL,
"customer_id" BIGINT NOT NULL,
"token_hash" VARCHAR(64) NOT NULL,
"expires_at" TIMESTAMP WITH TIME ZONE NOT NULL,
"created_at" TIMESTAMP WITH TIME ZONE NOT NULL,
CONSTRAINT "refresh_tokens_pkey" PRIMARY KEY ("id"),
CONSTRAINT "fk_refresh_tokens_customer" FOREIGN KEY ("customer_id") REFERENCES "public"."customers" ("id") ON DELETE CASCADE
);
CREATE UNIQUE INDEX IF NOT EXISTS "uk_refresh_tokens_token_hash"
ON "public"."refresh_tokens" (
"token_hash" ASC
);
CREATE INDEX IF NOT EXISTS "idx_refresh_tokens_customer_id"
ON "public"."refresh_tokens" (
"customer_id" ASC
);
-- insert sample admin user admin@ma-al.com/Maal12345678
INSERT INTO "public"."customers" ("id", "email", "password", "first_name", "last_name", "role", "provider", "provider_id", "avatar_url", "is_active", "email_verified", "email_verification_token", "email_verification_expires", "password_reset_token", "password_reset_expires", "last_password_reset_request", "last_login_at", "lang", "created_at", "updated_at", "deleted_at") VALUES (1, 'admin@ma-al.com', '$2a$10$Owy9DjrS0l3Fz4XoOvh5pulgmOMqdwXmb7hYE9BovnSuWS2plGr82', 'Super', 'Admin', 'admin', 'local', '', '', true, true, NULL, NULL, '', NULL, NULL, NULL, 'pl', '2026-03-02 16:55:10.25274+00', '2026-03-02 16:55:10.25274+00', NULL) ON CONFLICT DO NOTHING;
@@ -120,3 +140,4 @@ DROP TABLE IF EXISTS "public"."components";
DROP TABLE IF EXISTS "public"."scopes";
DROP TABLE IF EXISTS "public"."translations";
DROP TABLE IF EXISTS "public"."customers";
DROP TABLE IF EXISTS "public"."refresh_tokens";

View File

@@ -12,7 +12,8 @@ INSERT INTO components (id, name) VALUES
(103, 'email'),
(300, 'general'),
(301, 'validate_error'),
(302, 'repo_chart') ON CONFLICT DO NOTHING;
(302, 'repo_chart'),
(303, 'verify_email') ON CONFLICT DO NOTHING;
-- Scope
INSERT INTO scopes (id, name) VALUES (3, 'backoffice') ON CONFLICT DO NOTHING;
@@ -135,7 +136,7 @@ INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(2, 3, 301, 'registration_validation_password_requirements', 'Password requirements for registration'),
(3, 3, 301, 'confirm_password_required', 'Potvrďte heslo'),
(3, 3, 301, 'email_required', 'E-mail je povinný'),
(3, 3, 301, 'first_name_required', 'First name is required'),
(3, 3, 301, 'first_name_required', 'Jméno je povinné'),
(3, 3, 301, 'last_name_required', 'Příjmení je povinné'),
(3, 3, 301, 'no_issues_for_quarter', 'Nebyla nalezena žádná issues pro toto čtvrtletí'),
(3, 3, 301, 'password_required', 'Heslo je povinné'),
@@ -146,15 +147,15 @@ INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(1, 3, 302, 'all_quarters', 'Wszystkie kwartały'),
(1, 3, 302, 'created_on', 'Utworzono'),
(1, 3, 302, 'failed_to_load_issues', 'Nepodařilo se načíst úlohy'),
(1, 3, 302, 'failed_to_load_issues', 'Nie udało się załadować zadań'),
(1, 3, 302, 'failed_to_load_quarters', 'Nie udało się załadować kwartałów'),
(1, 3, 302, 'failed_to_load_repositories', 'Nie udało się załadować repozytoriów'),
(1, 3, 302, 'failed_to_load_years', 'Nie udało się załadować lat'),
(1, 3, 302, 'hours', 'Hodiny'),
(1, 3, 302, 'hours', 'Godziny'),
(1, 3, 302, 'hours_spent', 'Spędzone godziny'),
(1, 3, 302, 'hours_worked', 'Odpracované hodiny'),
(1, 3, 302, 'hours_worked', 'Przepracowane godziny'),
(1, 3, 302, 'issue_name', 'Nazwa zadania'),
(1, 3, 302, 'issues_for', 'Úkoly pro'),
(1, 3, 302, 'issues_for', 'Zadania dla'),
(1, 3, 302, 'loading', 'Ładowanie'),
(1, 3, 302, 'login_to_view_charts', 'Zaloguj się, aby zobaczyć wykresy pracy repozytoriów.'),
(1, 3, 302, 'no_work_data_available', 'Brak danych o pracy dla wybranych kryteriów.'),
@@ -162,7 +163,7 @@ INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(1, 3, 302, 'repository', 'Repozytorium'),
(1, 3, 302, 'repository_work_chart', 'Wykres pracy repozytorium'),
(1, 3, 302, 'select_a_repository', 'Wybierz repozytorium'),
(1, 3, 302, 'select_a_year', 'Vyberte rok'),
(1, 3, 302, 'select_a_year', 'Wybrany rok'),
(1, 3, 302, 'select_quarter_to_view_issues', 'Proszę wybrać kwartał, aby zobaczyć zadania.'),
(1, 3, 302, 'select_repo_to_view_data', 'Proszę wybrać repozytorium, aby zobaczyć dane o pracy.'),
(1, 3, 302, 'select_year_to_view_data', 'Proszę wybrać rok, aby zobaczyć dane o pracy.'),
@@ -198,15 +199,15 @@ INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(2, 3, 302, 'year', 'Year'),
(3, 3, 302, 'all_quarters', 'Všechna čtvrtletí'),
(3, 3, 302, 'created_on', 'Vytvořeno'),
(3, 3, 302, 'failed_to_load_issues', 'Nie udało się załadować zgłoszeń'),
(3, 3, 302, 'failed_to_load_issues', 'Problémy se nepodařilo načíst'),
(3, 3, 302, 'failed_to_load_quarters', 'Nepodařilo se načíst čtvrtletí'),
(3, 3, 302, 'failed_to_load_repositories', 'Nepodařilo se načíst repozitáře'),
(3, 3, 302, 'failed_to_load_years', 'Nepodařilo se načíst roky'),
(3, 3, 302, 'hours', 'Godziny'),
(3, 3, 302, 'hours', 'Hodiny'),
(3, 3, 302, 'hours_spent', 'Strávené hodiny'),
(3, 3, 302, 'hours_worked', 'Przepracowane godziny'),
(3, 3, 302, 'hours_worked', 'Odpracované hodiny'),
(3, 3, 302, 'issue_name', 'Název úkolu'),
(3, 3, 302, 'issues_for', 'Zadania dla'),
(3, 3, 302, 'issues_for', 'úkoly pro'),
(3, 3, 302, 'loading', 'Načítání'),
(3, 3, 302, 'login_to_view_charts', 'Přihlaste se pro zobrazení grafů práce repozitářů.'),
(3, 3, 302, 'no_work_data_available', 'Pro zvolená kritéria nejsou k dispozici žádná pracovní data.'),
@@ -214,15 +215,51 @@ INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(3, 3, 302, 'repository', 'Repozitář'),
(3, 3, 302, 'repository_work_chart', 'Graf práce úložiště'),
(3, 3, 302, 'select_a_repository', 'Vyberte repozitář'),
(3, 3, 302, 'select_a_year', 'Wybierz rok'),
(3, 3, 302, 'select_a_year', 'Vyberte rok'),
(3, 3, 302, 'select_quarter_to_view_issues', 'Vyberte prosím čtvrtletí pro zobrazení úkolů.'),
(3, 3, 302, 'select_repo_to_view_data', 'Vyberte prosím repozitář pro zobrazení pracovních dat.'),
(3, 3, 302, 'select_year_to_view_data', 'Vyberte prosím rok pro zobrazení pracovních dat.'),
(3, 3, 302, 'user_initials', 'Iniciály uživatele'),
(3, 3, 302, 'work_by_quarter', 'Práce dokončená po čtvrtletích (hodiny)'),
(3, 3, 302, 'work_done_by_quarter', 'Wykonana praca według kwartałów'),
(3, 3, 302, 'work_done_by_quarter', 'práce provedená za čtvrtletí'),
(3, 3, 302, 'year', 'Rok') ON CONFLICT DO NOTHING;
-- Component: verify_email
INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(1, 3, 303, 'already_registered', 'Masz już konto?'),
(1, 3, 303, 'error_message', 'Nie udało nam się zweryfikować Twojego adresu e-mail.'),
(1, 3, 303, 'error_title', 'Weryfikacja nie powiodła się'),
(1, 3, 303, 'go_to_login', 'Przejdź do logowania'),
(1, 3, 303, 'invalid_token', 'Nieprawidłowy lub brakujący token weryfikacyjny'),
(1, 3, 303, 'please_wait', 'Masz już konto?'),
(1, 3, 303, 'redirect_message', 'Zostaniesz przekierowany na stronę logowania...'),
(1, 3, 303, 'success_message', 'Twój adres e-mail został pomyślnie zweryfikowany.'),
(1, 3, 303, 'success_title', 'E-mail zweryfikowany!'),
(1, 3, 303, 'verification_failed', 'Weryfikacja e-maila nie powiodła się'),
(1, 3, 303, 'verifying', 'Sprawdzanie Twojego adresu e-mail...'),
(2, 3, 303, 'already_registered', 'already registered?'),
(2, 3, 303, 'error_message', 'We could not verify your email.'),
(2, 3, 303, 'error_title', 'Verification Failed'),
(2, 3, 303, 'go_to_login', 'Go to Login'),
(2, 3, 303, 'invalid_token', 'Invalid or missing verification token'),
(2, 3, 303, 'please_wait', 'Already have an account?'),
(2, 3, 303, 'redirect_message', 'You will be redirected to login page...'),
(2, 3, 303, 'success_message', 'Your email has been verified successfully.'),
(2, 3, 303, 'success_title', 'Email Verified!'),
(2, 3, 303, 'verification_failed', 'Email verification failed'),
(2, 3, 303, 'verifying', 'Verifying your email...'),
(3, 3, 303, 'already_registered', 'Už máte účet?'),
(3, 3, 303, 'error_message', 'Nepodařilo se nám ověřit váš e-mail.'),
(3, 3, 303, 'error_title', 'Ověření selhalo'),
(3, 3, 303, 'go_to_login', 'Přejít na přihlášení'),
(3, 3, 303, 'invalid_token', 'Neplatný nebo chybějící ověřovací token'),
(3, 3, 303, 'please_wait', 'Už máte účet?'),
(3, 3, 303, 'redirect_message', 'Budete přesměrováni na přihlašovací stránku...'),
(3, 3, 303, 'success_message', 'Váš e-mail byl úspěšně ověřen.'),
(3, 3, 303, 'success_title', 'E-mail ověřen!'),
(3, 3, 303, 'verification_failed', 'Ověření e-mailu selhalo'),
(3, 3, 303, 'verifying', 'Ověřování vašeho e-mailu...') ON CONFLICT DO NOTHING;
-- +goose Down
-- Remove translations for this scope
DELETE FROM translations WHERE scope_id = 3;

View File

@@ -12,7 +12,8 @@ INSERT INTO components (id, name) VALUES
(103, 'email'),
(300, 'general'),
(301, 'validate_error'),
(302, 'repo_chart') ON CONFLICT DO NOTHING;
(302, 'repo_chart'),
(303, 'verify_email') ON CONFLICT DO NOTHING;
-- Scope
INSERT INTO scopes (id, name) VALUES (1, 'Backend') ON CONFLICT DO NOTHING;

181
i18n/migrations/backend.sql Normal file
View File

@@ -0,0 +1,181 @@
-- +goose Up
-- Dump translations from database
-- Components
INSERT INTO components (id, name) VALUES
(1, 'be'),
(2, 'login'),
(3, 'verify_email'),
(100, 'email'),
(101, 'error'),
(102, 'auth'),
(103, 'email'),
(300, 'general') ON CONFLICT DO NOTHING;
-- Scope
INSERT INTO scopes (id, name) VALUES (1, 'Backend') ON CONFLICT DO NOTHING;
-- Translations
-- Component: email
INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(1, 1, 100, 'langs_loaded', NULL),
(1, 1, 100, 'langs_not_loaded', NULL),
(1, 1, 100, 'message_nok', NULL),
(1, 1, 100, 'message_ok', NULL),
(1, 1, 100, 'translations_loaded', NULL),
(1, 1, 100, 'translations_not_loaded', NULL),
(2, 1, 100, 'langs_loaded', NULL),
(2, 1, 100, 'langs_not_loaded', NULL),
(2, 1, 100, 'message_nok', NULL),
(2, 1, 100, 'message_ok', NULL),
(2, 1, 100, 'translations_loaded', NULL),
(2, 1, 100, 'translations_not_loaded', NULL),
(3, 1, 100, 'langs_loaded', NULL),
(3, 1, 100, 'langs_not_loaded', NULL),
(3, 1, 100, 'message_nok', NULL),
(3, 1, 100, 'message_ok', NULL),
(3, 1, 100, 'translations_loaded', NULL),
(3, 1, 100, 'translations_not_loaded', NULL) ON CONFLICT DO NOTHING;
-- Component: error
INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(1, 1, 101, 'err_email_exists', 'adres e-mail zajęty'),
(1, 1, 101, 'err_email_not_verified', 'adres e-mail nie został zweryfikowany'),
(1, 1, 101, 'err_email_password_required', 'wymagany jest adres e-mail i hasło'),
(1, 1, 101, 'err_email_required', 'Adres e-mail jest wymagany'),
(1, 1, 101, 'err_first_last_name_required', 'imię i nazwisko są wymagane'),
(1, 1, 101, 'err_internal_server_error', 'błąd wewnętrzny serwera'),
(1, 1, 101, 'err_invalid_body', 'nieprawidłowy tekst zapytania'),
(1, 1, 101, 'err_invalid_credentials', 'nieprawidłowy adres e-mail lub hasło'),
(1, 1, 101, 'err_invalid_password', 'hasło musi mieć co najmniej 10 znaków i zawierać co najmniej jedną małą literę, jedną wielką literę i jedną cyfrę'),
(1, 1, 101, 'err_invalid_reset_token', 'nieprawidłowy token'),
(1, 1, 101, 'err_invalid_token', 'nieprawidłowy token'),
(1, 1, 101, 'err_invalid_verification_token', 'nieprawidłowy token'),
(1, 1, 101, 'err_not_authenticated', 'nie uwierzytelniono'),
(1, 1, 101, 'err_passwords_do_not_match', 'hasła nie pasują'),
(1, 1, 101, 'err_refresh_token_required', 'wymagany jest token odświeżania'),
(1, 1, 101, 'err_reset_token_expired', 'token wygasł'),
(1, 1, 101, 'err_token_expired', 'token wygasł'),
(1, 1, 101, 'err_token_password_required', 'wymagane są token i hasło'),
(1, 1, 101, 'err_token_required', 'wymagany jest token'),
(1, 1, 101, 'err_user_inactive', 'konto użytkownika jest nieaktywne'),
(1, 1, 101, 'err_user_not_found', 'użytkownik nie został znaleziony'),
(1, 1, 101, 'err_verification_token_expired', 'token weryfikacyjny wygasł'),
(2, 1, 101, 'err_email_exists', 'email already exists'),
(2, 1, 101, 'err_email_not_verified', 'email not verified'),
(2, 1, 101, 'err_email_password_required', 'email and password are required'),
(2, 1, 101, 'err_email_required', 'email is required'),
(2, 1, 101, 'err_first_last_name_required', 'first and last name is required'),
(2, 1, 101, 'err_internal_server_error', 'internal server error'),
(2, 1, 101, 'err_invalid_body', 'invalid request body'),
(2, 1, 101, 'err_invalid_credentials', 'invalid email or password'),
(2, 1, 101, 'err_invalid_password', 'password must be at least 10 characters long and contain at least one lowercase letter, one uppercase letter, and one digit'),
(2, 1, 101, 'err_invalid_reset_token', 'invalid reset token'),
(2, 1, 101, 'err_invalid_token', 'invalid token'),
(2, 1, 101, 'err_invalid_verification_token', 'invalid verification token'),
(2, 1, 101, 'err_not_authenticated', 'not authenticated'),
(2, 1, 101, 'err_passwords_do_not_match', 'passwords do not match'),
(2, 1, 101, 'err_refresh_token_required', 'refresh token is required'),
(2, 1, 101, 'err_reset_token_expired', 'reset token has expired'),
(2, 1, 101, 'err_token_expired', 'token has expired'),
(2, 1, 101, 'err_token_password_required', 'token and password are required'),
(2, 1, 101, 'err_token_required', 'token is required'),
(2, 1, 101, 'err_user_inactive', 'user account is inactive'),
(2, 1, 101, 'err_user_not_found', 'user not found'),
(2, 1, 101, 'err_verification_token_expired', 'verification token has expired'),
(3, 1, 101, 'err_email_exists', 'e-mail již existuje'),
(3, 1, 101, 'err_email_not_verified', 'e-mail nebyl ověřen'),
(3, 1, 101, 'err_email_password_required', 'je vyžadován e-mail a heslo'),
(3, 1, 101, 'err_email_required', 'e-mail je povinný'),
(3, 1, 101, 'err_first_last_name_required', 'křestní jméno a příjmení je povinné'),
(3, 1, 101, 'err_internal_server_error', 'interní chyba serveru'),
(3, 1, 101, 'err_invalid_body', 'neplatné tělo požadavku'),
(3, 1, 101, 'err_invalid_credentials', 'neplatný e-mail nebo heslo'),
(3, 1, 101, 'err_invalid_password', 'heslo musí mít alespoň 10 znaků a musí obsahovat alespoň jedno malé písmeno, jedno velké písmeno a jednu číslici'),
(3, 1, 101, 'err_invalid_reset_token', 'neplatný resetovací token'),
(3, 1, 101, 'err_invalid_token', 'neplatný token'),
(3, 1, 101, 'err_invalid_verification_token', 'neplatný ověřovací token'),
(3, 1, 101, 'err_not_authenticated', 'neověřeno'),
(3, 1, 101, 'err_passwords_do_not_match', 'hesla se neshodují'),
(3, 1, 101, 'err_refresh_token_required', 'Je vyžadován token pro obnovení'),
(3, 1, 101, 'err_reset_token_expired', 'Platnost resetovacího tokenu vypršela'),
(3, 1, 101, 'err_token_expired', 'platnost tokenu vypršela'),
(3, 1, 101, 'err_token_password_required', 'je vyžadován token a heslo'),
(3, 1, 101, 'err_token_required', 'je vyžadován token'),
(3, 1, 101, 'err_user_inactive', 'uživatelský účet je neaktivní'),
(3, 1, 101, 'err_user_not_found', 'uživatel nenalezen'),
(3, 1, 101, 'err_verification_token_expired', 'platnost ověřovacího tokenu vypršela') ON CONFLICT DO NOTHING;
-- Component: auth
INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(1, 1, 102, 'auth_if_account_exists', 'jeśli konto o tym adresie e-mail istnieje, został wysłany link do resetowania hasła'),
(1, 1, 102, 'auth_logged_out_successfully', 'wylogowano pomyślnie'),
(1, 1, 102, 'auth_password_reset_successfully', 'pomyślnie zresetowano hasło'),
(1, 1, 102, 'auth_registration_successful', 'rejestracja pomyślna, proszę zweryfikować swój adres e-mail'),
(2, 1, 102, 'auth_if_account_exists', 'if an account with that email exists, a password reset link has been sent'),
(2, 1, 102, 'auth_logged_out_successfully', 'logged out successfully'),
(2, 1, 102, 'auth_password_reset_successfully', 'password reset successfully'),
(2, 1, 102, 'auth_registration_successful', 'registration successful, please verify your email'),
(3, 1, 102, 'auth_if_account_exists', 'Pokud účet s danou e-mailovou adresou existuje, byl odeslán odkaz pro resetování hesla.'),
(3, 1, 102, 'auth_logged_out_successfully', 'úspěšně odhlášen/a'),
(3, 1, 102, 'auth_password_reset_successfully', 'úspěšné obnovení hesla'),
(3, 1, 102, 'auth_registration_successful', 'Registrace úspěšná, prosím ověřte svůj e-mail') ON CONFLICT DO NOTHING;
-- Component: email
INSERT INTO translations (lang_id, scope_id, component_id, "key", data) VALUES
(1, 1, 103, 'email_admin_notification_title', 'Admin notification title'),
(1, 1, 103, 'email_footer', 'Wszelkie prawa zastrzeżone.'),
(1, 1, 103, 'email_greeting', 'Witaj,'),
(1, 1, 103, 'email_ignore', 'Jeśli nie jesteś właścicielem tego konta, prosimy o zignorowanie maila.'),
(1, 1, 103, 'email_ignore_reset', 'Jeśli nie chcesz zmieniać hasła, prosimy o zignorowanie maila. Twoje hasło pozostanie niezmienione.'),
(1, 1, 103, 'email_or_copy', 'Bądź przekopiuj poniższy link do przeglądarki:'),
(1, 1, 103, 'email_password_reset_message1', 'Otrzymaliśmy prośbę o zresetowanie Twojego hasła. Aby utworzyć nowe hasło, kliknij w poniższy przycisk:'),
(1, 1, 103, 'email_password_reset_subject', 'Zresetuj hasło'),
(1, 1, 103, 'email_password_reset_title', 'Zresetuj swoje hasło'),
(1, 1, 103, 'email_password_reset_warning', 'Link na zresesetowanie hasła przedawni się po 1 godzinie.'),
(1, 1, 103, 'email_reset_button', 'Zresetuj hasło'),
(1, 1, 103, 'email_verification_message1', 'Dziękujemy za rejestrację. Aby dokończyć proces rejestracji, zweryfikuj swojego maila klikając w poniższy link:'),
(1, 1, 103, 'email_verification_note', 'Uwaga: link weryfikacyjny przedawni się za 24 godziny.'),
(1, 1, 103, 'email_verification_subject', 'Zweryfikuj swój adres email'),
(1, 1, 103, 'email_verification_title', 'Weryfikacja Adresu email'),
(1, 1, 103, 'email_verify_button', 'Zweryfikuj adres email'),
(1, 1, 103, 'email_warning_title', 'Ważne:'),
(2, 1, 103, 'email_admin_notification_title', 'Admin notification title'),
(2, 1, 103, 'email_footer', 'All rights reserved.'),
(2, 1, 103, 'email_greeting', 'Hello,'),
(2, 1, 103, 'email_ignore', 'If you did not create an account with us, please ignore this email.'),
(2, 1, 103, 'email_ignore_reset', 'If you did not request a password reset, please ignore this email. Your password will remain unchanged.'),
(2, 1, 103, 'email_or_copy', 'Or copy and paste this link into your browser:'),
(2, 1, 103, 'email_password_reset_message1', 'We received a request to reset your password. Click the button below to create a new password:'),
(2, 1, 103, 'email_password_reset_subject', 'Reset Your Password'),
(2, 1, 103, 'email_password_reset_title', 'Reset Your Password'),
(2, 1, 103, 'email_password_reset_warning', 'This password reset link will expire in 1 hour for security reasons.'),
(2, 1, 103, 'email_reset_button', 'Reset Password'),
(2, 1, 103, 'email_verification_message1', 'Thank you for registering with us. To complete your registration and activate your account, please verify your email address by clicking the button below:'),
(2, 1, 103, 'email_verification_note', 'Note: This verification link will expire in 24 hours.'),
(2, 1, 103, 'email_verification_subject', 'Verify Your Email Address'),
(2, 1, 103, 'email_verification_title', 'Verify Your Email Address'),
(2, 1, 103, 'email_verify_button', 'Verify Email Address'),
(2, 1, 103, 'email_warning_title', 'Important:'),
(3, 1, 103, 'email_admin_notification_title', 'Admin notification title'),
(3, 1, 103, 'email_footer', 'Všechna práva vyhrazena.'),
(3, 1, 103, 'email_greeting', 'Ahoj,'),
(3, 1, 103, 'email_ignore', 'Pokud jste si u nás nevytvořili účet, prosím, ignorujte tento e-mail.'),
(3, 1, 103, 'email_ignore_reset', 'Pokud jste nepožádali o obnovení hesla, ignorujte prosím tento e-mail. Vaše heslo zůstane nezměněno.'),
(3, 1, 103, 'email_or_copy', 'Nebo zkopírujte a vložte tento odkaz do prohlížeče:'),
(3, 1, 103, 'email_password_reset_message1', 'Obdrželi jsme žádost o obnovení hesla. Klikněte na tlačítko níže a vytvořte si nové heslo:'),
(3, 1, 103, 'email_password_reset_subject', 'Obnovte si heslo'),
(3, 1, 103, 'email_password_reset_title', 'Obnovte si heslo'),
(3, 1, 103, 'email_password_reset_warning', 'Z bezpečnostních důvodů platnost tohoto odkazu pro obnovení hesla vyprší za 1 hodinu.'),
(3, 1, 103, 'email_reset_button', 'Obnovit heslo'),
(3, 1, 103, 'email_verification_message1', 'Děkujeme za registraci u nás. Chcete-li dokončit registraci a aktivovat svůj účet, ověřte prosím svou e-mailovou adresu kliknutím na tlačítko níže:'),
(3, 1, 103, 'email_verification_note', 'Poznámka: Platnost tohoto ověřovacího odkazu vyprší za 24 hodin.'),
(3, 1, 103, 'email_verification_subject', 'Ověřte svou e-mailovou adresu'),
(3, 1, 103, 'email_verification_title', 'Ověřte svou e-mailovou adresu'),
(3, 1, 103, 'email_verify_button', 'Ověření e-mailové adresy'),
(3, 1, 103, 'email_warning_title', 'Důležité:') ON CONFLICT DO NOTHING;
-- +goose Down
-- Remove translations for this scope
DELETE FROM translations WHERE scope_id = 1;

File diff suppressed because it is too large Load Diff