Skip to content

Commit b45934c

Browse files
chore: improve model annotations
1 parent ff49892 commit b45934c

File tree

13 files changed

+44
-62
lines changed

13 files changed

+44
-62
lines changed

src/CasGenerator/CasGeneratorGenerateCasParams.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public function __construct()
8888
*
8989
* You must use named parameters to construct any parameters with a default value.
9090
*
91-
* @param CasAuthority::*|null $casAuthority
91+
* @param CasAuthority::* $casAuthority
9292
*/
9393
public static function with(
9494
string $email,

src/CasParser/UnifiedResponse.php

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,13 @@
1313
use CasParser\Core\Attributes\Api;
1414
use CasParser\Core\Concerns\SdkModel;
1515
use CasParser\Core\Contracts\BaseModel;
16-
use CasParser\Core\Conversion\ListOf;
1716

1817
final class UnifiedResponse implements BaseModel
1918
{
2019
use SdkModel;
2120

2221
/** @var list<DematAccount>|null $dematAccounts */
23-
#[Api(
24-
'demat_accounts',
25-
type: new ListOf(DematAccount::class),
26-
optional: true
27-
)]
22+
#[Api('demat_accounts', list: DematAccount::class, optional: true)]
2823
public ?array $dematAccounts;
2924

3025
#[Api(optional: true)]
@@ -37,7 +32,7 @@ final class UnifiedResponse implements BaseModel
3732
public ?Meta $meta;
3833

3934
/** @var list<MutualFund>|null $mutualFunds */
40-
#[Api('mutual_funds', type: new ListOf(MutualFund::class), optional: true)]
35+
#[Api('mutual_funds', list: MutualFund::class, optional: true)]
4136
public ?array $mutualFunds;
4237

4338
#[Api(optional: true)]
@@ -54,8 +49,8 @@ public function __construct()
5449
*
5550
* You must use named parameters to construct any parameters with a default value.
5651
*
57-
* @param list<DematAccount>|null $dematAccounts
58-
* @param list<MutualFund>|null $mutualFunds
52+
* @param list<DematAccount> $dematAccounts
53+
* @param list<MutualFund> $mutualFunds
5954
*/
6055
public static function with(
6156
?array $dematAccounts = null,

src/CasParser/UnifiedResponse/DematAccount.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public function __construct()
7373
*
7474
* You must use named parameters to construct any parameters with a default value.
7575
*
76-
* @param DematType::*|null $dematType
76+
* @param DematType::* $dematType
7777
*/
7878
public static function with(
7979
?AdditionalInfo $additionalInfo = null,

src/CasParser/UnifiedResponse/DematAccount/AdditionalInfo.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use CasParser\Core\Attributes\Api;
88
use CasParser\Core\Concerns\SdkModel;
99
use CasParser\Core\Contracts\BaseModel;
10-
use CasParser\Core\Conversion\ListOf;
1110

1211
/**
1312
* Additional information specific to the demat account type.
@@ -51,7 +50,7 @@ final class AdditionalInfo implements BaseModel
5150
*
5251
* @var list<string>|null $linkedPans
5352
*/
54-
#[Api('linked_pans', type: new ListOf('string'), optional: true)]
53+
#[Api('linked_pans', list: 'string', optional: true)]
5554
public ?array $linkedPans;
5655

5756
/**
@@ -77,7 +76,7 @@ public function __construct()
7776
*
7877
* You must use named parameters to construct any parameters with a default value.
7978
*
80-
* @param list<string>|null $linkedPans
79+
* @param list<string> $linkedPans
8180
*/
8281
public static function with(
8382
?string $boStatus = null,

src/CasParser/UnifiedResponse/DematAccount/Holdings.php

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,41 +12,32 @@
1212
use CasParser\Core\Attributes\Api;
1313
use CasParser\Core\Concerns\SdkModel;
1414
use CasParser\Core\Contracts\BaseModel;
15-
use CasParser\Core\Conversion\ListOf;
1615

1716
final class Holdings implements BaseModel
1817
{
1918
use SdkModel;
2019

2120
/** @var list<Aif>|null $aifs */
22-
#[Api(type: new ListOf(Aif::class), optional: true)]
21+
#[Api(list: Aif::class, optional: true)]
2322
public ?array $aifs;
2423

2524
/** @var list<CorporateBond>|null $corporateBonds */
26-
#[Api(
27-
'corporate_bonds',
28-
type: new ListOf(CorporateBond::class),
29-
optional: true
30-
)]
25+
#[Api('corporate_bonds', list: CorporateBond::class, optional: true)]
3126
public ?array $corporateBonds;
3227

3328
/** @var list<DematMutualFund>|null $dematMutualFunds */
34-
#[Api(
35-
'demat_mutual_funds',
36-
type: new ListOf(DematMutualFund::class),
37-
optional: true,
38-
)]
29+
#[Api('demat_mutual_funds', list: DematMutualFund::class, optional: true)]
3930
public ?array $dematMutualFunds;
4031

4132
/** @var list<Equity>|null $equities */
42-
#[Api(type: new ListOf(Equity::class), optional: true)]
33+
#[Api(list: Equity::class, optional: true)]
4334
public ?array $equities;
4435

4536
/** @var list<GovernmentSecurity>|null $governmentSecurities */
4637
#[Api(
4738
'government_securities',
48-
type: new ListOf(GovernmentSecurity::class),
49-
optional: true,
39+
list: GovernmentSecurity::class,
40+
optional: true
5041
)]
5142
public ?array $governmentSecurities;
5243

@@ -61,11 +52,11 @@ public function __construct()
6152
*
6253
* You must use named parameters to construct any parameters with a default value.
6354
*
64-
* @param list<Aif>|null $aifs
65-
* @param list<CorporateBond>|null $corporateBonds
66-
* @param list<DematMutualFund>|null $dematMutualFunds
67-
* @param list<Equity>|null $equities
68-
* @param list<GovernmentSecurity>|null $governmentSecurities
55+
* @param list<Aif> $aifs
56+
* @param list<CorporateBond> $corporateBonds
57+
* @param list<DematMutualFund> $dematMutualFunds
58+
* @param list<Equity> $equities
59+
* @param list<GovernmentSecurity> $governmentSecurities
6960
*/
7061
public static function with(
7162
?array $aifs = null,

src/CasParser/UnifiedResponse/Insurance.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
use CasParser\Core\Attributes\Api;
99
use CasParser\Core\Concerns\SdkModel;
1010
use CasParser\Core\Contracts\BaseModel;
11-
use CasParser\Core\Conversion\ListOf;
1211

1312
final class Insurance implements BaseModel
1413
{
@@ -17,8 +16,8 @@ final class Insurance implements BaseModel
1716
/** @var list<LifeInsurancePolicy>|null $lifeInsurancePolicies */
1817
#[Api(
1918
'life_insurance_policies',
20-
type: new ListOf(LifeInsurancePolicy::class),
21-
optional: true,
19+
list: LifeInsurancePolicy::class,
20+
optional: true
2221
)]
2322
public ?array $lifeInsurancePolicies;
2423

@@ -33,7 +32,7 @@ public function __construct()
3332
*
3433
* You must use named parameters to construct any parameters with a default value.
3534
*
36-
* @param list<LifeInsurancePolicy>|null $lifeInsurancePolicies
35+
* @param list<LifeInsurancePolicy> $lifeInsurancePolicies
3736
*/
3837
public static function with(?array $lifeInsurancePolicies = null): self
3938
{

src/CasParser/UnifiedResponse/Meta.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function __construct()
4242
*
4343
* You must use named parameters to construct any parameters with a default value.
4444
*
45-
* @param CasType::*|null $casType
45+
* @param CasType::* $casType
4646
*/
4747
public static function with(
4848
?string $casType = null,

src/CasParser/UnifiedResponse/MutualFund.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
use CasParser\Core\Attributes\Api;
1010
use CasParser\Core\Concerns\SdkModel;
1111
use CasParser\Core\Contracts\BaseModel;
12-
use CasParser\Core\Conversion\ListOf;
1312

1413
final class MutualFund implements BaseModel
1514
{
@@ -40,7 +39,7 @@ final class MutualFund implements BaseModel
4039
public ?string $registrar;
4140

4241
/** @var list<Scheme>|null $schemes */
43-
#[Api(type: new ListOf(Scheme::class), optional: true)]
42+
#[Api(list: Scheme::class, optional: true)]
4443
public ?array $schemes;
4544

4645
/**
@@ -60,7 +59,7 @@ public function __construct()
6059
*
6160
* You must use named parameters to construct any parameters with a default value.
6261
*
63-
* @param list<Scheme>|null $schemes
62+
* @param list<Scheme> $schemes
6463
*/
6564
public static function with(
6665
?AdditionalInfo $additionalInfo = null,

src/CasParser/UnifiedResponse/MutualFund/Scheme.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
use CasParser\Core\Attributes\Api;
1212
use CasParser\Core\Concerns\SdkModel;
1313
use CasParser\Core\Contracts\BaseModel;
14-
use CasParser\Core\Conversion\ListOf;
1514

1615
final class Scheme implements BaseModel
1716
{
@@ -55,11 +54,11 @@ final class Scheme implements BaseModel
5554
*
5655
* @var list<string>|null $nominees
5756
*/
58-
#[Api(type: new ListOf('string'), optional: true)]
57+
#[Api(list: 'string', optional: true)]
5958
public ?array $nominees;
6059

6160
/** @var list<Transaction>|null $transactions */
62-
#[Api(type: new ListOf(Transaction::class), optional: true)]
61+
#[Api(list: Transaction::class, optional: true)]
6362
public ?array $transactions;
6463

6564
/**
@@ -93,9 +92,9 @@ public function __construct()
9392
*
9493
* You must use named parameters to construct any parameters with a default value.
9594
*
96-
* @param list<string>|null $nominees
97-
* @param list<Transaction>|null $transactions
98-
* @param Type::*|null $type
95+
* @param list<string> $nominees
96+
* @param list<Transaction> $transactions
97+
* @param Type::* $type
9998
*/
10099
public static function with(
101100
?AdditionalInfo $additionalInfo = null,

src/Core/Attributes/Api.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
use CasParser\Core\Conversion\Contracts\Converter;
88
use CasParser\Core\Conversion\Contracts\ConverterSource;
9+
use CasParser\Core\Conversion\ListOf;
10+
use CasParser\Core\Conversion\MapOf;
911

1012
/**
1113
* @internal
@@ -22,15 +24,18 @@ final class Api
2224
* @param class-string<ConverterSource>|Converter|string|null $type
2325
* @param class-string<ConverterSource>|Converter|null $enum
2426
* @param class-string<ConverterSource>|Converter|string|null $union
27+
* @param class-string<ConverterSource>|Converter|string|null $list
2528
*/
2629
public function __construct(
2730
public readonly ?string $apiName = null,
2831
Converter|string|null $type = null,
2932
Converter|string|null $enum = null,
3033
Converter|string|null $union = null,
34+
Converter|string|null $list = null,
35+
Converter|string|null $map = null,
3136
public readonly bool $nullable = false,
3237
public readonly bool $optional = false,
3338
) {
34-
$this->type = $type ?? $enum ?? $union;
39+
$this->type = $type ?? $enum ?? $union ?? ($list ? new ListOf($list) : ($map ? new MapOf($map) : null));
3540
}
3641
}

0 commit comments

Comments
 (0)