%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/cospend/lib/ |
| Current File : /www/varak.net/nextcloud.varak.net/apps_old/apps/cospend/lib/ResponseDefinitions.php |
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2024 Julien Veyssier <julien-nc@posteo.net>
*
* @author Julien Veyssier <julien-nc@posteo.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Cospend;
/**
* @psalm-type CospendAccessLevel = 0|1|2|3|4
* @psalm-type CospendShareType = 'l'|'u'|'g'|'c'
* @psalm-type CospendFrequency = 'n'|'d'|'w'|'b'|'s'|'m'|'y'
*
* @psalm-type CospendMember = array{
* activated: bool,
* userid: ?string,
* name: string,
* id: int,
* weight: float,
* color: array{r: int, g: int, b: int},
* lastchanged: int,
* }
*
* @psalm-type CospendBaseShare = array{
* id: int,
* accesslevel: CospendAccessLevel,
* }
*
* @psalm-type CospendUserShare = CospendBaseShare&array{
* type: 'u',
* userid: string,
* name: string,
* manually_added: bool,
* }
*
* @psalm-type CospendGroupShare = CospendBaseShare&array{
* type: 'g',
* groupid: string,
* name: string,
* }
*
* @psalm-type CospendCircleShare = CospendBaseShare&array{
* type: 'c',
* circleid: string,
* name: string,
* }
*
* @psalm-type CospendPublicShare = CospendBaseShare&array{
* type: 'l',
* token: string,
* label: ?string,
* password: ?string,
* }
*
* @psalm-type CospendShare = array<CospendUserShare|CospendGroupShare|CospendCircleShare|CospendPublicShare>
*
* @psalm-type CospendCurrency = array{
* id: int,
* name: string,
* exchange_rate: float,
* projectid: string,
* }
*
* @psalm-type CospendCategoryOrPaymentMode = array{
* id: int,
* projectid: string,
* name: ?string,
* color: ?string,
* icon: ?string,
* order: int,
* }
*
* @psalm-type CospendCategory = CospendCategoryOrPaymentMode
*
* @psalm-type CospendPaymentMode = CospendCategoryOrPaymentMode&array{
* old_id: string,
* }
*
* @psalm-type CospendExtraProjectInfo = array{
* active_members: CospendMember[],
* members: CospendMember[],
* balance: array<float>,
* nb_bills: int,
* total_spent: float,
* nb_trashbin_bills: int,
* shares: CospendShare[],
* currencies: CospendCurrency[],
* categories: CospendCategoryOrPaymentMode[],
* paymentmodes: CospendCategoryOrPaymentMode[],
* }
*
* @psalm-type CospendPublicProjectInfo = array{
* id: int,
* name: string,
* email: ?string,
* autoexport: string,
* lastchanged: int,
* deletiondisabled: bool,
* categorysort: string,
* paymentmodesort: string,
* currencyname: string,
* archived_ts: int,
* }
*
* @psalm-type CospendProjectInfo = CospendPublicProjectInfo&array{
* userid: string,
* }
*
* @psalm-type CospendPublicProjectInfoPlusExtra = CospendPublicProjectInfo&CospendExtraProjectInfo
* @psalm-type CospendProjectInfoPlusExtra = CospendProjectInfo&CospendExtraProjectInfo
*
* @psalm-type CospendFullPublicProjectInfo = CospendPublicProjectInfoPlusExtra&array{
* myaccesslevel: int,
* }
* @psalm-type CospendFullProjectInfo = CospendProjectInfoPlusExtra&array{
* myaccesslevel: int,
* }
*
* @psalm-type CospendOwer = array{
* id: int,
* weight: float,
* name: string,
* activated: bool,
* }
*
* @psalm-type CospendBill = array{
* id: int,
* amount: float,
* what: string,
* comment: string,
* timestamp: int,
* date: string,
* payer_id: int,
* owers: CospendOwer[],
* owerIds: int[],
* repeat: CospendFrequency,
* paymentmode: string,
* paymentmodeid: int,
* categoryid: int,
* lastchanged: int,
* repeatallactive: int,
* repeatuntil: string,
* repeatfreq: int,
* deleted: int,
* }
*
* @psalm-type CospendProjectSettlement = array{
* transactions: ?array<array{to: int, amount: float, from: int}>,
* balances: array<string, float>,
* }
*
* @psalm-type CospendProjectStatistics = array<string, mixed>
*/
class ResponseDefinitions {
}